On 21 Oct 2009, at 19:18, Stephen Eley wrote:
On Wed, Oct 21, 2009 at 1:12 PM, Carl Graff <cagr...@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.
QED.

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 available.

Ashley


* which was my situation

--
http://www.patchspace.co.uk/
http://www.linkedin.com/in/ashleymoran
http://aviewfromafar.net/







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

Reply via email to