[rspec-users] Stub that returns hash values
ashley.moran at patchspace.co.uk
Fri Oct 23 03:24:38 EDT 2009
On 21 Oct 2009, at 19:18, Stephen Eley wrote:
> On Wed, Oct 21, 2009 at 1:12 PM, Carl Graff <cagraff at cox.net> wrote:
>> In truth, due to my inexperience and confusion, mocks seem to slow my
>> development more than just creating real objects. But since there
>> has been
>> so much effort to put these into testing frameworks, I think it
>> must be
>> important to try and learn when it is appropriate to use them.
> That is a fallacious line of reasoning. A lot of effort has also gone
> into American football, every Michael Bay movie, and Windows Vista.
To be fair, Carl did say he wanted to "learn when it is appropriate to
use them" as opposed to just using them indiscriminately. And the
answer may be "never". I suppose it's quite possible that mocks do
suck, and we just haven't realised yet. But that's ok, they suck less
than inspecting instance variables, so I'm happy, at least.
What I would suggest is to not try to learn how to use mocks on
production code*, unless you have pretty thorough means of integration
testing. Incorrect mocking leads to brittle specs* and that leads to
hidden bugs* and thrashing during refactoring*.
In fact, if you don't use a tool such as Cucumber, I'd recommend
learning that over mocking first. (You don't need to use Cucumber,
but it's more suited for high-level descriptions than RSpec.) As
RSpec lets you refactor without risk of breaking units of code,
Cucumber lets you refactor your code and specs across units. That
gives you a metric on how well you're using mocks - unexpected
Cucumber failures indicate a faulty assumption somewhere. Of course,
that assumes your Cucumber features are solid...
Just my coin of small denomination. Other learning strategies are
* which was my situation
More information about the rspec-users