Somehow these "real language" extensions for Ruby remind me of the XML craze for Java. To feel right, everything had to be configured in an XML file for Javaists. In the same way, Rubyists apparently feel uneasy if something doesn't read like nice natural language.
I suspect both things are just cleverly masked procrastination....
I agree in most cases, but Cucumber is one of the few times when it really felt beneficial to me. In most cases, I'd rather have straightforward Ruby code like we all understand or a simple YAML config file. But for a declarative spec framework, Cucumber works nicely. Try looking at a Cucumber spec vs. a Steak one and I think you'll see what I mean.
" Rubyists apparently feel uneasy if something doesn't read like nice natural language."
Include me out.
With rare exception do I want to spend time trying to get something to read like English; it won't.
And I get tired of guessing which idiomatic "natural" phrasing is to be used for such things in other people's libraries.
Funny you should compare it to XML + Java, because it makes me think, "So you need to write an API. You've decided to make it read like natural English. Now you have two problems."
Both are YAGNI. Java programmers want the non-programmers to configure their application, but of course, the XML files are actually critical code, so this can't happen. Similarly, Rubyists want "anyone" to write tests, so they figure that a natural language interface will allow that.
The reality is that you are the only person working on your app, and this is all a waste of your time. Just write regular code -- it's more readable and more concise.
It's a fairly lightweight layer on top of Test::Unit that lets you define nested stories and scenarios, integrating with Webrat (soon Capybara when we get to it).
One differentiating feature of Stories is that you can print out a readable PDF doc with each story, and the specific scenarios that make it up, leaving off the Test::Unit implementation of the scenarios. Because really, clients don't want to read even cucumber's specs. The nasty secret of Cucumber is that it's still programming. You have to be very explicit in what you setup, and what you expect. Even if your explicitness is hidden behind english, it's still there, and many client's just don't think like that. Heck, that's why they hire programmers.
Steak is an extension of rspec and sortof inspired by Cucumber. I do remember Obie Fernandez had a blog post about a dsl that looks very similar a few years ago, however I cannot find it.
We just started using steak and it is slowly replacing cucumber in our application.
We found the translation between English -> Step Definitions -> Ruby to be too onerous, especially after our stakeholders showed no interest in helping write the scenarios...
[+] [-] Tichy|16 years ago|reply
I suspect both things are just cleverly masked procrastination....
[+] [-] chc|16 years ago|reply
Then again, I am a vegetarian.
[+] [-] jamesbritt|16 years ago|reply
Include me out.
With rare exception do I want to spend time trying to get something to read like English; it won't.
And I get tired of guessing which idiomatic "natural" phrasing is to be used for such things in other people's libraries.
Funny you should compare it to XML + Java, because it makes me think, "So you need to write an API. You've decided to make it read like natural English. Now you have two problems."
[+] [-] jrockway|16 years ago|reply
The reality is that you are the only person working on your app, and this is all a waste of your time. Just write regular code -- it's more readable and more concise.
[+] [-] cschneid|16 years ago|reply
It's a fairly lightweight layer on top of Test::Unit that lets you define nested stories and scenarios, integrating with Webrat (soon Capybara when we get to it).
One differentiating feature of Stories is that you can print out a readable PDF doc with each story, and the specific scenarios that make it up, leaving off the Test::Unit implementation of the scenarios. Because really, clients don't want to read even cucumber's specs. The nasty secret of Cucumber is that it's still programming. You have to be very explicit in what you setup, and what you expect. Even if your explicitness is hidden behind english, it's still there, and many client's just don't think like that. Heck, that's why they hire programmers.
[+] [-] jamesbritt|16 years ago|reply
Is this supposed to be some sort of slight, or a put-down?
Is there something lesser about being a vegetarian?
I'm curious, being, you know, a vegetarian and all.
[+] [-] jedediah|16 years ago|reply
[+] [-] binspace|16 years ago|reply
[+] [-] knowtheory|16 years ago|reply
[+] [-] eclark|16 years ago|reply
[+] [-] shykes|16 years ago|reply
I'd like to see a repository of Cucumber tests for basic HTTP and DOM interaction, with implementations in multiple languages.
[+] [-] igorgue|16 years ago|reply
[+] [-] tarvaina|16 years ago|reply
JBehave: text
RBehave (based on JBehave): code
RSpec Story Runner (based on RBehave): code, later also text
Cucumber (based on RSpec Story Runner): text
Steak (based on Cucumber): code
[+] [-] binspace|16 years ago|reply
Maybe I'm going senile.
[+] [-] mguterl|16 years ago|reply
We found the translation between English -> Step Definitions -> Ruby to be too onerous, especially after our stakeholders showed no interest in helping write the scenarios...
[+] [-] binspace|16 years ago|reply
[+] [-] binspace|16 years ago|reply
[+] [-] clistctrl|16 years ago|reply
[+] [-] benatkin|16 years ago|reply