Java Test-Driven Development

All developers want to build good quality software but not all developers test their software as they go along. Why not? A common explanation is "I dont have time to write tests!" The more pressure they feel, the fewer tests they write. This leads to less accurate and stable code, less productivity, less confidence and, ultimately, more pressure. Its a vicious cycle. This course is designed to help you break out of the cycle by embracing unit-testing and, in particular, test-driven development. We will introduce the techniques and the tools necessary to prove your code as you go along.

What you will learn:

  • Creating tests using JUnit
  • Using assertions and Hamcrest matchers
  • Adopting a test-driven approach to development
  • Using stubs and mock objects
  • Writing integration tests
  • Testing the user Interface


This training course is aimed at Java developers.


At least 3 months Java programming experience

Course outline:

Introduction to JUnit:

  • Getting started with unit testing using JUnit
  • Generating test stubs
  • Using assertions
  • Running tests
  • Test statuses
  • Dealing with exceptions
  • Best practice

Going Further with Unit Testing:

  • Organizing Projects
  • Performing setup and teardown operations
  • Using Hamcrest matchers
  • Defining a custom matcher
  • Test suites

TDD and Agile Development:

  • Understanding the TDD process
  • Test, code, refactor
  • TDD strategies
  • Refactoring techniques
  • Testing patterns
  • Best practice

Unit Testing with Mock Objects

  • Managing dependencies
  • Defining test doubles
  • Stubs, mocks, dummies, and fakes
  • Tool support – JMock, EasyMock, and Mockito

Additional testing techniques:

  • Integration testing
  • Testing the user interface using Selenium WebDriver
  • Behaviour-driven design (BDD)
  • Using JBehave for BDD

Andy Olsen - author of the course

Andy is a freelance consultant and instructor based in the UK, working mostly in the City of London and Oxford. Andy has been working with .NET since the Beta 1 days and has extensive experience in many facets of .NET development including WCF, WPF, WF, ASP.NET MVC Web development, and mobile applications. Andy has designed and written many Microsoft Official Curriculum courses in the last decade, and has been engaged as author and technical reviewer with Apress on some of their biggest selling books.

Other relevant courses