Testing is a fundamental part of the Agile process. We live and breath TDD/BDD. Red/Green/Refactor is our daily mantra. We love cucumber and writing executable customer readable specifications. We even write tests for our javascripts.
And yet, testing remains hard. The tests we love to write are brittle and tend to break when we refactor. Although we talk about the tests being the specification of our code, too often the specify "how it's implemented" rather than "the expected behaviour".
This workshop is about how to improve the way we do testing, how to move away from merely specifying how our software is implemented to capturing the true essence of how it should function.
Topics include:
- Slow Tests
- Over Mocking
- Complex Object Builds
- Gratuitous Use of the Database
- Custom Assertions / Matchers
- Over Meta in Tests
- Testing Private Methods
- Correct use of Describe & Context
- Refactoring Tests
- Tests as Specifications