top of page
courses_Header for Twitter- 1500 x 500 p

Online course

Driving Your Java Code
with Tests

Delivered by Kevlin Henney
2 weeks/7 hours per week

You will learn about...

  • What do we mean by unit tests?

  • How do unit tests fit into the testing and development landscape?

  • What do GUTs look like?

  • The elements of TDD

  • Core JUnit features

  • Data-driven tests and how to choose test data

  • Test naming and nesting

  • The anatomy of test cases and test suites

  • Plain ol' unit testing (POUT), defect-driven testing (DDT), and iterative test-last (ITL)

  • Identifying and adjusting overfitting and underfitting tests

  • Reasons writing tests can be hard, and how to respond

  • Mocks, stubs and other test doubles

  • When to use values instead of test doubles

  • Testing and legacy code


2 weeks


7 hours per week








TDD, GUTs, Java


Developers, team leads, architects and testers

Course description

Testing forms an integral part of the modern software development flow. From customer-facing acceptance tests to code-focused unit tests, automated testing is part of the fabric of a modern build process and deployment pipeline. 


In this online course, you will learn about good unit tests (GUTs) and test-driven development (TDD) by seeing what it takes, putting them into practice, and reviewing what you've learned.

But it's not enough that there are some tests: to be a help, not a hindrance, tests need to communicate not just verify, and testing needs to be a development habit, not an afterthought.

What practices support readable and maintainable tests? What test pitfalls hold developers and products back? How do you make testing fun and not a chore? Join us to answer these questions and more.

The examples and hands-on exercises will use Java and JUnit 5, but you don't need to be a Java guru to take part.