NDC London Day 2

  • conference (NDC London, Workshop): Program with GUTs

Program with GUTs (Good Unit Tests)

This was a workshop I attended at NDC London 2026!

https://ndclondon.com/workshops/program-with-gut/79c67a3d855e

Description

Tests help to make long-term product development cost effective rather than a cost centre. They underpin the effective flow of CI/CD and reduce failure demand on a team. But the discussion of unit testing goes further than simply doing it: what makes a unit test good? It’s not enough to have tests; poor quality tests can hold back development just as good tests can streamline it.

This session looks at good unit tests (GUTs) and different testing workflows, from test-driven development (TDD) to refactoring-driven development, whether the code you are testing comes from the past, from a prompt or direct from your fingertips. Examples will be in C#, JavaScript and TypeScript.

Agenda

  • Kinds of tests
  • Test-writing workflow: POUT, ITL, DDT, TDD and more
  • What makes a unit test good?
  • Common test smells and failure modes
  • Tests as documentation and specification
  • Given/When/Then and Arrange/Act/Assert test structure
  • Aligning tests with domain concepts
  • Data-driven tests
  • Choices and checklists for test data
  • Understanding (and misunderstanding) code coverage
  • Structuring tests according to state models
  • Grouping and nesting tests according to Given/When/Then
  • Addressing brittle tests and long-term skipped tests
  • Test strength: overfitting and underfitting tests
  • Improving the design of your code by listening to your tests
  • Dependency management and mocking
  • Alternatives to mocking