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.

Kevlin Henney - Driving Your Java Code with Tests

Kevlin Henney - Driving Your Java Code with Tests

Play Video

A great course. It covers JUnit 5 Core and Mocking but goes much further. You learn how to write good tests: how to structure and name tests, and what a test should cover (one test class per business class is not a good idea). An excellent tool for good tests and good test coverage is TDD (Test Driven Development).


And there are plenty of practical code examples to practice with. More than 90% of the course is actually independent of the programming language and framework and can also be used outside of Java and JUnit. A course that provides a lot of knowledge for the developers' daily work. Conclusion: great course and highly recommended.

Jean-Claude Brantschen, "Driving Your Java Code with tests" course attendee
Software Developer, PuzzleITC



Course dates & time

Each session includes a lecture, Q&A, and hands-on coding exercises, as well as optional homework to help connect the days and weeks. 


The course is designed so that it can fit in with your other commitments for work and home.

 It is split into four  3 ½-hour parts spread over two weeks, two times a week.

13:20 - 17:00 (GMT +2)
(PART 1) Driving Your Java Code with Tests
13:20 - 17:00 (GMT +2)
(PART 2) Driving Your Java Code with Tests
13:20 - 17:00 (GMT +2)
(PART 3) Driving Your Java Code with Tests
13:20 - 17:00 (GMT +2)
(PART 4) Driving Your Java Code with Tests


Kevlin Henney is an independent consultant, speaker, writer, and trainer. His development interests include programming languages, software architecture, and programming practices, with a particular emphasis on unit testing and reasoning about practices at the team level. He has spoken at Build Stuff conferences and meetups since 2014 and is a popular keynote speaker at conferences around the world.

Kevlin loves to help and inspire others, share ideas and ask questions. He has helped many teams with their code,  culture, and practices, contributing code to companies and open source. He has been a columnist for a number of magazines and sites (including Java Report, C++ report, Better Software, and The Register) and has been on far too many committees (including the ISO C++ committee and the IEEE Software advisory board). He is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages, two volumes in the Pattern-Oriented Software Architecture series. He is also editor of 97 Things Every Programmer Should Know and co-editor of 97 Things Every Java Programmer Should Know.

Book the course privately or request more information about this course

Build Stuff online courses provides the same experience and access to experts that you would have in an in-person course, without needing to leave your desk or couch.

The format is set to be flexible and you have to dedicate only a few hours of your time a week.

Taking this course you will get...


Slides, references,

real-world examples


Get direct access to the trainer & attendees On Slack Channel. Chat, share & ask directly


After each lesson


Collaborative team-work tools

Take this online course if: 

  • you want to cover more functionality with less code.

  • you want to improve the quality of your unit tests.

  • you want to spend less time puzzling over the meaning of code, bugs, and tests.

  • you want to reduce time wasted in your day-to-day development process.

Course details:


The audience for this course includes developers, team leads, architects, and testers.

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.


The course will make use of an online environment that supports unit testing, so there is no need for any additional software.

If you are comfortable reading Java and are familiar with it, you will find the lessons translate easily to many other languages and frameworks. 

Join other courses:

bottom of page