Your application is a unique snowflake. Your software tests are too… but they shouldn’t be! Years helping teams write better tests has taught me one thing: consistency is crucial. Inconsistent tests slow teams down, wasting time to understand how each test works.
Behaviour Driven Development (BDD) is an Agile software development process where behavioural specifications are expressed in a specific language that can be validated by a automated testing tool. RSpec is an open source a BDD tool for Ruby programmers. The Better Specs web site aims to collect the best practices about BDD with RSpec.
Test-Driven Development (TDD) has been tattered, torn, twisted, stood on its head, and pounded into an pulp of techno-fetishism. TDD was a game-changer, but the focus in the interceding years has shifted from technique to tools and TDD has been devolving into a lost art.
Developers are always looking for ways to boost productivity. Effective debugging allows one to more quickly discover inaccuracies between our expectations and how the software actually behaves.
Test-Driven Development (TDD) can be difficult to practice as features increase in complexity. Testing is often skipped when developers feel uncomfortable with TDD or have not yet seen certain approaches in practice. This video describes specific techniques used in TDD which touch on: Integration testing with RSpec+Capybara, Model Associations and Data Validations, Asynchronous Jobs, Emails, 3rd Party Services, and JSON API endpoints.
Tests are supposed to save us money. How is it, then, that many times they become millstones around our necks, gradually morphing into fragile, breakable things that raise the cost of change? We write too many tests and we test the wrong kinds of things.