[rspec-users] skip pending (was Re: Posted this in "dev" last night but I'm not sure that anyone reads it)

Jonathan Linowes jonathan at parkerhill.com
Mon Oct 1 22:44:50 EDT 2007


The way I've started using story runner is to write the story and  
scenarios, and then implement each step incrementally. The order that  
I implement is not necessarily the order its logically written. Lets  
say I want to get the story working without the authentication, so a  
Given clause and a Then clause might be pending; but I'd still want  
the story to run though the rest of the stuff. I tried calling pending 
("TO DO") in the do end block,but that gave same result. Well, what  
if we added a new method, like skip_this_because("authentication not  
implemented yet") ?? :)


On Oct 1, 2007, at 5:10 PM, Dan North wrote:

> Hi Jonathan.
>
> The pending method uses an exception to fail fast out of the step,  
> but the runner knows it's a special case so it treats it  
> accordingly. That's why pending steps or scenarios are reported  
> differently from failures in the runner. It would be easy to  
> reimplement pending using Ruby's throw/catch mechanism which is  
> separate from the exception mechanism, I just didn't think to do it  
> at the time. (Plus, the rspec example runner uses exceptions too so  
> it makes sense for the story runner to do the same.)
>
> As for the first pending (or failing) step terminating the  
> scenario, this is a tricky one. You don't want the scenario to  
> carry on executing because something has already gone wrong (either  
> by failing or simply by not being implemented yet), but there are  
> listeners that want to know what other steps would have run, for  
> documentation for example.
>
> I am thinking of something like this: once a step fails, iterate  
> over the remaining steps in the scenario, passing them into the  
> found_step method on any documenters, but not actually executing  
> the steps. This would strike a balance between actually executing  
> the steps - which wouldn't make sense - and simply ignoring them,  
> which makes the documentation look weird.
>
> Maybe they could be coloured differently in the (as-yet-unwritten)  
> html story documenter, so you would have a bunch of green steps,  
> one red or yellow step (the failing or pending one), and the  
> remaining unexecuted ones in grey.
>
>
> On 10/1/07, Jonathan Linowes <jonathan at parkerhill.com> wrote:
> If you add the pending statement before other non-pending ones, it
> stops at the first pending one. That forces me to implement them in
> the order specified, a rough example:
>
> Then "user was authorized to perform this action"
>
> And "action was completed correctly" do
>         ...
> end
>
>
>
> On Sep 14, 2007, at 7:10 PM, Pat Maddox wrote:
>
> > On 9/14/07, Evan David Light < evan at tiggerpalace.com> wrote:
> >>
> >>   I've been using RSpec in anger for perhaps a total of a few days
> >> and just
> >> started playing with Story Runner.  Love it.
> >>
> >>  I also started working on a patch, which ought to be simple, to
> >> allow for
> >> Scenarios without supplied blocks to be treated as pending -- much
> >> like "it"
> >> in Spec::DSL::ExampleAPI.
> >>
> >>  That said, I noticed something that seemed odd and chatted with  
> Rein
> >> Henrichs a little about it on #rspec.  ScenarioRunner#run treats
> >> "pending"
> >> scenarios as an error case.  We both believed this to be a little
> >> odd as we
> >> both thought that pending would just be a branch and not an
> >> error.  That
> >> said, I thought that there may be a reasonable explanation.
> >>
> >> Evan Light
> >> IMs (all): sleight42
> >> Twitter: elight
> >> http://evan.tiggerpalace.com
> >> _______________________________________________
> >> rspec-users mailing list
> >> rspec-users at rubyforge.org
> >> http://rubyforge.org/mailman/listinfo/rspec-users
> >>
> >
> > Hrm...I added
> >
> >     And "this should be pending" do
> >       pending "need something else"
> >     end
> >
> > to the end of one of my stories and got:
> >
> >   And this should be pending
> > P
> > 4 scenarios: 3 succeeded, 0 failed, 1 pending
> >
> > I agree that it would be nice if story runner treats an empty
> > Given/When/Then as pending.  But what do you mean it treats  
> pending as
> > an error case?
> >
> > Pat
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-users
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20071001/b9a57f27/attachment.html 


More information about the rspec-users mailing list