On Nov 21, 2007 3:53 PM, Scott Taylor <[EMAIL PROTECTED]> wrote: > > On Nov 21, 2007, at 4:22 PM, David Chelimsky wrote: > > > > On Nov 21, 2007 3:14 PM, Daniel N <[EMAIL PROTECTED]> wrote: > >> Hi, > >> > >> I want to be able to get at the described class in my shared > >> behaviour. I'm > >> sure an example will say it better than my words > >> > >> describe "my shared", :shared => true do > >> > >> it "should tell me what the class is its describing" do > >> how_do_i_get_the_user_class_here > >> end > >> > >> end > >> > >> describe User do > >> it_should_behave_like "my shared" > >> > >> #... > >> end > >> > >> So in my shared behaviour, how do I get access to the User class? > > > > There's no way to do this implicitly. i.e. rspec does not expose the > > class. You'd have to have a method like described_class or something: > > > > describe "my shared", :shared => true do > > > > it "should tell me what the class is its describing" do > > described_class.should do_something_I_care_about > > end > > > > end > > > > describe User do > > def described_class > > User > > end > > ... > > end > > Or you could just set up instance variables in your before :each block: > > describe "an object which has to_s", :shared => true do > it "should work!" do > :foo.send(@method).should == "foo" > end > end > > describe Symbol do > before :each do > @method = :to_s > end > > it_should_behave_like "an object which has to_s" > end > > > On another note, I've been poking around Rubinius' source, which uses > a scaled down version of rspec, and they already have shared examples > with parameters: > > shared :symbol_id2name do |cmd| > describe "Symbol\##{cmd}" do > it "returns the string corresponding to self" do > :rubinius.send(cmd).should == "rubinius" > :squash.send(cmd).should == "squash" > :[].send(cmd).should == "[]" > :@ruby.send(cmd).should == "@ruby" > :@@ruby.send(cmd).should == "@@ruby" > end > end > end > > require File.dirname(__FILE__) + '/../../spec_helper' > > describe "Symbol#to_s" do > it_behaves_like(:symbol_id2name, :to_s) > end > > > This doesn't seem that hard to implement. Is there some reason a > patch has been created yet?
Yes. You haven't submitted it. > > Scott > > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users