On Mar 26, 2011, at 9:43 PM, Rodrigo Rosenfeld Rosas wrote:

> Hi David and fellows,
> 
> I know this subject has already been discussed here and there are already 
> some attempts to support the given-when-then-and syntax in Rspec, like the 
> links below:
> 
> https://gist.github.com/206969
> https://github.com/jimweirich/rspec-given
> 
> First, I don't understand the reason to adopt the capital method names 
> Given/When/Then/And instead of given/when/then/and.

'when', 'then', and 'and' are all Ruby keywords. You can define them as 
methods, but unpleasant things happen.

> Then, I don't think we can call this some real support for that syntax 
> because "example" is not meant to be executed in any special order in Rspec 
> nor it can be defined that any additional "then/and" should be aborted if a 
> prior expectation wasn't met. And both solutions seem to work by simple 
> aliasing "example" and "describe".
> 
> I never used Cucumber because I find that working with it is cumbersome for 
> most cases.
> 
> I've been working mostly with Grails on my daily job for about 2 years now 
> since I moved to my current job. I wanted something like Rspec for Groovy and 
> Grails and while searching for some alternative, I found EasyB:
> 
> http://www.easyb.org/
> 
> Actually I liked the story syntax they provide as well as the reports and I 
> found it would be useful for Rspec to incorporate that style too:
> 
> http://www.easyb.org/howtos.html
> 
> What do you think?

Adding first class support for feature/scenario/given/when/then would be a 
fundamental change to rspec-core, requiring much more than simply exposing new 
syntax. We'd need new formatters, new ways to define shared code, new command 
line options, etc, etc. I think this would require too much work, and make the 
libraries more complicated to use and maintain.

I like the direction that rspec-given takes us: an extension library on top of 
RSpec. As you point out, it could be made more valuable by adding rich concepts 
like "steps" that are different from "examples", but I think that could be done 
within the context of rspec-given (or any other extension), and I'd gladly 
consider adding new extension points that would make that job easier.

Cheers,
David

> Best regards!
> 
> Rodrigo.

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

Reply via email to