On 19 Apr 2009, at 13:58, David Chelimsky wrote:

Also - you really don't need custom groups for this sort of thing,
because you can define with_method in a module and extend the
configuration w/ that module:

 module WithMethod
   def with_method(verb)
     subject { send(verb, description_args.first) }
     yield
   end
 end

 Spec::Runner.configure {|c| c.extend(WithMethod)}

Cheers,
David

Or even (if I'm following this correctly) just define it right there inside your describe block:

describe "custom example group" do

  # available in groups
  def self.custom_example_group_method
    puts "hello from a custom example group class"
  end

  # available in examples
  def custom_example_method
    puts "hello from a custom example group instance"
  end

  custom_example_group_method

  it "provides access to instance methods" do
    custom_example_method
  end
end

Obviously this doesn't give you any re-use yet, but it's usually the very first step I take before factoring out a module like David's suggested. I've yet to need to take it as far as the custom example group class, but I like the concept.

Matt Wynne
http://blog.mattwynne.net
http://www.songkick.com

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to