Ashley Moran <[EMAIL PROTECTED]> writes:

> On 2 Dec 2008, at 08:04, Pau Cor wrote:
>
>>> Given /^there are no (.*)$/ do |thing|
>>
>> I really like that. It will make it much more clear since "Given there
>> are no" will be a very common step.
>
> Hmmm, I personally think it's safer to set up each scenario from a
> blank slate.  I've used "Given there are no X" steps before, but they
> are just stubs to make the scenario read right, ie they simply don't
> create anything, rather than destroying existing data.
>
> The current implementation,
>   Given /^there are no posties$/ do
>     Postie.destroy_all
>   end
>
> strikes me more of a when step, eg
>   When /^all posties are destroyed$/ do
>     Postie.destroy_all
>   end
>
> A Before block to destroy the Posties (and any other models) will
> probably reduce issues in the long run if Postie began to depend on
> another object, and was trapped by a database constraint.
>
> Ashley

I'm with you on this.  In fact, I think my implementation would be

Given ...
  Postie.count.should == 0
end

It's just an assertion (in the C sense of the word, not testing).  You
should be starting off with a clean slate anyway...but having a couple
assertions before you run can be very helpful for localization.  Plus
this step can obviously be reused as a When.

Pat
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to