@miry Gherkin is well-designed for teams that involve stakeholders, end-users, and non-technical Product Owners in defining behavioral and non-functional tests. When done properly, you can say things in Gherkin that you can't say as clearly in RSpec even with well thought out documentation mode statements. It's just a different use case.
Turnip allows you to do Gherkin in RSpec, but as far as I know that only works in Ruby. I'm unaware of anything similar in Crystal, which is why I asked.
@todd_a_jacobs @miry in none of the projects with Cucumber I've ever encountered non-nerds writing the tests.
It always started with good intentions and ended up being written by the devs anyway.
Thus in these projects Cucumber just added useless complexity because of the 'step matcher glue' and it never held up to its promises.
But I'm glad that it works out for you.
@alexanderadam @miry You're making a fair point. I'd argue that such is a failure in the agile implementation rather than in #CucumberBDD or #Gherkin itself, though.
That doesn't invalidate your point. It just turns it from "Cucumber is a useless tool!" into "We're failing to collaborate effectively with stakeholders." The latter is a process problem, and should be addressed within the #ProjectManagement framework being used IMHO.
Good call-out, though!
@postmodern @alexanderadam @miry I've been thinking about this. I think the problem is when you think of Gherkin as "requirements" instead of collaborating on descriptive behavior.
That said, there are features of Gherkin that don't fit into the coding or unit testing category. How do *you* find success in collaborating with non-technical people on IT & esp. software projects? I'm always interested in new perspectives.
@todd_a_jacobs Not a Crystal developer, but as a #Cucumber user I would say that you may not *need* a Crystal equivalent: just use Cucumber?
What you need is only something that can operate your System Under Test. I automated things on websites using Capybara (which start the browser and click through the pages) and in CLI applications with Aruba (from the cucumber project itself). As long as you have the tooling to operate the SUT, you are good to go 😉
Edit: Fixed typos!
@smortex Interesting idea. #RubyLang #CucumberBDD could call out to compiled #CrystalLang code, so I suppose it would simply force the team to think more about the behavior of a running system, not intermixing specs and steps as is often the case in Cucumber.
The biggest challenge would likely be in testing the results, since (unlike with Ruby). I *might* not be able to use some of the DB rollback plugins and such.
It's actually a great idea. Thank you for the constructive suggestion!