Cucumber sucks. Features are hard to write and constantly break when the UI changes. Step definitions are annoying to create and a freaking nightmare to maintain. And Cucumber suites take for-EVER to run, because you have to wait for a web browser.
Except... none of that is actually true.
After years of making awful messes with Cucumber, I finally found a way to use it that worked well, and a project I couldn't have done without it. I'd like to show you one way to use Cucumber that can be elegant, powerful, expressive, and—believe it or not—fast. Learning Outcomes:
- You'll learn from, and hopefully laugh at, my abominations^W mistakes.
- You'll find Cucumber's sweet spot of abstraction: not super nitpicky, but not too hand-wavy either.
- You'll take away a short question you can use as a quick "gut check" to stay in that sweet spot.
- You may even be inspired to try an advanced technique that may, at first, sound a little bit wacky.
- And if you've sworn off Cucumber, you *might* just be prompted to give it another look.