Tag Testpiramide

TDD en de testpiramide

Ik ruimde een boekenkast in op het werk, toen een collega me vroeg of ik wist hoe je een call naar een keyed service uit de IServiceProvider mockt. Nee, niet direct, zei ik. Maar waarom zou je dat überhaupt willen? Vanaf daar ontspon er een gesprek over Test-Driven Development, het ontwerp van code en de verschillende delen van de testpiramide.

Unittests vs. integratietests

Integratietests worden veelal gedefinieerd in contrast met unittests. Als we unittests beschouwen we als tests die (een eenheid van) gedrag testen, dan volgt daaruit dat integratietests niet het testen van gedrag als doel hebben. Integratietests verifiëren niet de inhoud van subsystemen, maar de interactie tussen subsystemen.

Zelfs de testpiramide is niet meer heilig!

Ik ben altijd in de veronderstelling geweest dat mijn geautomatiseerde tests een piramidevormige verhouding tot elkaar zouden moeten hebben: aan de basis enorm veel unittests, in het midden een goede hoeveelheid integratietests, en aan de top een bescheiden aantal end to end (E2E) tests. Totdat ik Learning Domain-Driven Design van Vlad Khononov las. (Een aanrader, overigens!)