[rspec-users] Stopping example execution?
mileshosky at hotmail.com
Sun Jun 29 12:38:42 EDT 2008
> From: dchelimsky at gmail.com
> To: rspec-users at rubyforge.org
> Date: Sun, 29 Jun 2008 11:20:46 -0500
> Subject: Re: [rspec-users] Stopping example execution?
> On Jun 29, 2008, at 11:18 AM, Britt Mileshosky wrote:
>> However, do you see where something like a return statement or end
>> example statement could be beneficial?
>> If you are working from the top down with your controller action
>> execution, then you only need to test your expectation
>> and then bail out of your action. No need to further test or meet
>> requirements on anything else in that action because your
>> single test has been met.
>> - in my example for making sure I find a user, I'd like to end
>> execution once I DID find the user, i shouldn't have to satisfy
>> requirements about finding an account and a person... I'll write
>> those expectations later in another nested describe group, as you
>> can see here, in a top down process
>> PeopleController with a logged in user
>> - should find user
>> PeopleController with a logged in user who has an account
>> - should find account
>> PeopleController with a logged in user who doesnt have an account
>> - shouldn't find account
>> - should redirect ...
>> PeopleController with a logged in user who has an account the person
>> belongs to
>> - should find person
>> - should assign person for the view
>> PeopleController with a logged in user who has an account the
>> requested person does not belong to
>> - should not find person
>> - should ...
> My instinct about this is that it would encourage long methods because
> it would make it less painful to test them, so I would be adverse to
> anything that let's you short circuit the method.
> Anybody else have opinions on that?
I understand your point, but should a testing framework be worried too much about how a user will be writing their application code?
Leave it to the programmer to decide what logic they put in the controller, let the testing framework make it easy to test
that certain conditions are met, no matter how those conditions are presented in the application.
This short-circuting can be completely optional... it would just be nice to have it there if needed. In the end I honestly can see a more
natural process to testing methods bit by bit, building up examples and stubs in their respective describe groups as needed. If someone
wants to single describe group and all stubs at the top, so be it. I'd like mine to be incrementally built upon each other.
I'll be quiet now and let others discuss, (...I'm cheering for this though!)
Need to know now? Get instant answers with Windows Live Messenger.
More information about the rspec-users