[rspec-users] [rspec-rails] how to test module behavior once and then confirm that controllers implement it?
Nick
nick at deadorange.com
Sat Jan 15 00:29:58 EST 2011
Hey Lille.
> Specifically, what is the recommended structure for the test of the
> module filter;
>
How about creating a shared example group, and referencing that?
http://blog.davidchelimsky.net/2010/11/07/specifying-mixins-with-shared-example-groups-in-rspec-2/
> next, how can I confirm that the controller classes
> that have included the module and are properly calling its methods as
> filters.
>
You can check if a class included a module like this:
Foo.should include Bar
When an object calls a method that was mixed in, the method's called as
though it truly is a part of the class. So you can just do:
Module Bar
def baz; end
end
Class Foo
include Bar
def something
baz
end
end
f = Foo.new
f.should_receive(:baz).and_return nil
f.something
In the rest of your specs, it's just a matter of stubbing out the call to
"baz".
> Cracking this could save me from duplicating the testing of the full
> behavior of the filters in several instances, in several
> ActionController classes.
>
I hope that helps!
Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20110114/de2b0904/attachment.html>
More information about the rspec-users
mailing list