Sep262023“Testing Without Mocks” at World Agility Forum (Lisbon, Portugal)
I’m going be presenting part of my “Testing Without Mocks” training course at the World Agility Forum in Lisbon. This is a great course that emphasizes hands-on work, and I’m very happy to have the opportunity to deliver it in-person as part of the WAF’s “Technical Agility” track.
Here’s the blurb:
Programmers need automated tests to avoid wasting huge amounts of time manually checking and fixing code. But automated tests also tend to waste a huge amount of time:
- Flaky tests fail randomly.
- End-to-end tests run slowly.
- Mock-heavy tests can be hard to understand, lock in implementation, or only test themselves.
People use design techniques such as Hexagonal Architecture to reduce these problems, but they require expensive architectural changes and often leave infrastructure untested. (Infrastructure is the code that talks to external systems or state.)
In this hands-on coding course, James Shore will show you another way. You'll learn how to write tests that are fast, reliable, fully test infrastructure, and don't require architectural changes. Better yet, they're 100% compatible with your existing code and tests. You can start using them immediately, even in a legacy codebase.
- Terminology: narrow vs. broad tests; interaction-based vs. state-based tests; sociable vs. solitary tests.
- Understanding Nullables, configurable responses, behavior simulation, and output tracking.
- Comparing and contrasting broad tests, interaction-based tests, and sociable tests.
- Designing tests for clarity.
- Writing high-level infrastructure wrappers (also known as "Adapters" or "Gateways").
- Using Nullable low-level infrastructure to test high-level infrastructure.
- Implementing output tracking.
- Designing infrastructure wrappers; encapsulation; composition/decomposition.
All this and how to build and test a web page controller that calls an external service, and an infrastructure wrapper for an external service.
The World Agility Forum is September 22-26 in Lisbon, Portugal. Learn more and register here.