#CrystalLang comes with its own version of #RSpec built in. However, I can't seem to find a Crystal equivalent for #CucumberBDD, although I've heard anecdotally that Turnip (which embeds #GherkinSyntax into RSpec) works even if it lacks some of Cucumber's full feature set. What do Crystal programmers use as a drop-in replacement or alternative implementation for #RubyLang Cucumber?
@todd_a_jacobs Crystal's Spec is more like minispec. Spectator tries to be an RSpec equivalent. All I can find for Cucumber/Gherkin is this repo, which hasn't tagged a release yet.
https://github.com/drhuffman12/gherkin-cr
GitHub - drhuffman12/gherkin-cr: Crystal port of https://github.com/cucumber/gherkin-ruby

Crystal port of https://github.com/cucumber/gherkin-ruby - GitHub - drhuffman12/gherkin-cr: Crystal port of https://github.com/cucumber/gherkin-ruby

GitHub
@todd_a_jacobs I don’t want to be a party pooper, but why cucumber ? In all my professional Ruby projects we moved away from it in 2013. I wonder if something changed since that time.

@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!

@todd_a_jacobs @alexanderadam @miry Gherkin really isn't that well suited, since most requirements are gathered by having meetings and talking vaguely, not explicitly writing out the requirements in structured text. Someone needs to make some GPT thing that can convert recordings of meetings into unit-tests and project skeletons.

@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!