Hi, My scenario is as follows, and so far I have not found the clean way to implement the following.
In a method I have a method called allowed_for?(*args) used as follows: ... if o.allowed_for?(:foo, :bar) #case a elsif o.allowed_for(:quux, :bif) #case b elsif o.allowed_for(:baz) #case c else #case default end now in the spec, I'd like to say something like obj.should_allow_for(:foo) obj.stub!(:allowed_for? => false) that is, if allowed_for? is called with varargs containing :foo it should return true, false otherwise. At the moment the only way I can make the spec to run is to create exact expectation, which is a bit too tightly coupled to the implementation: obj.should_receive(:allowed_for?).with(:foo, :bar).and_return ... another solution would wrap allow_for?(*args) into a single method call without parameter names and stubbing the wrapper methods: if o.fooey? #case a elsif o.quuxy? #case b elsif o.bazy? #case c else #case default end but I don't like it - the rules are simple and the whole method is now quite readable as it is. Creating one-line private methods would IMO add superfluous cruft and reduce legibility. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users