10 ms·
RSpec, Minitest, and Cucumber have a huge history in bringing Test Driven Development (TDD) and Behavior Driven Development (BDD) to many developers via Ruby on
by jph 5y ago
RSpec, Minitest, and Cucumber have a huge history in bringing Test Driven Development (TDD) and Behavior Driven Development (BDD) to many developers via Ruby on Rails. All three have fascinating interactions with language and psychology.
I believe there's an excellent masters thesis to be written that investigates the histories of these 3 tools and their adoption curves.
The history that I've seen is teams doing 4 steps: try RSpec and love it, try Cucumber and hate it, try Minitest and eventually favor it over RSpec because of directness and refactorability, then much later on revisit Cucumber for inter-team business specs and love it.
Along the curve, some teammates would express strong preferences, some wouldn't care much, and some would actively say only one was the One True Tool. Areas like this-- much like vim vs. emacs-- fascinate me because they hint at deep ways we think about code and work.
- srbaker 5y agoI also find this fascinating. My thesis, if I have one, is that everyone learns and internalises things in different ways. And I just wanted to provide a new way of learning.
- jherdman 5y agoHaving used RSpec and Cucumber for quite a number of years, and on quite a number of projects I think that, were I to (begrudgingly) start a greenfield Ruby project tomorrow I'd stick with MiniTest out of the box. I'm done with RSpec's extensive and seemingly magic API, and Cucumber's promises are hollow — business is not quite to write specs. I firmly believe that Elixir's ExUnit mostly got it right: `refute` and `assert` — that's it. I do miss nested context's and describes though.