On Nov 28, 2010, at 2:06 AM, medihack wrote:

>> That's my 2ยข, but feel free to try to convince me otherwise :)
> 
> Ok, I'll give my best ... how about a dollar? ;-)
> 
>> I understand that chains like this are common in Rails apps thanks to good 
>> ideas like composable finders (which generally do not violate Demeter), but 
>> I don't think the parallel chains should appear in client code or in specs. 
>> e.g. if this is a controller spec, the model should expose a single method 
>> that wraps this, and if it's the model spec, the spec should just call the 
>> method that wraps the chain with different inputs and and specify the 
>> expected outcomes.
> 
> I dislike the idea to extract a single line of chained method calls
> into its own method, just because it is easier to test then.

We have a fundamental philosophical disagreement here. I see testability as 
having inherent value, "just because it is easier to test" is a good enough 
reason to consider a change.

> It is not
> used anywhere else and the method it is in is not very large either
> (those would be reasons to extract that code in its own method).

I'm confused about where it _is_ being used? What code actually calls this 
chain?

> By
> the way, it is part of the model. I would agree if it were part of the
> controller.
> 
>> Even if I were in favor of the concept, the example above is confusing 
>> because it is a stub that becomes a message expectation.
> 
> I absolutely agree. I also thought about that when I read my post for
> a second time. How about: MyModel.should_receive_chain(...)

Need to ponder that. Will follow up with some thoughts.
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to