4.1 Introduction

Unit testing is at the heart of XP,
and
it is a central theme
of this book. JUnit,[1] available from
http://www.junit.org, is
the de facto standard for Java unit testing. It is a simple framework
for creating automated unit tests. JUnit test cases are Java classes
that contain one or more unit test methods, and these tests are
grouped into test suites. You can run tests individually, or you can
run entire test suites.

[1] We cover JUnit Version 3.8.1 in
this chapter.

Ant includes the junit task for running JUnit
tests. We show how to run JUnit tests using Ant in Chapter 3.

Each JUnit test method should execute quickly. Speed is important
because as more tests are written and integrated into the build
process, it takes longer to run the entire test suite. Programmers do
not want to be interrupted for long periods of times while tests
runso the longer the tests take to execute the greater the
likelihood programmers will skip this critical phase.

You can also increase the likelihood that programmers will run the
tests by making it extremely easy, preferably with a single command.
The ability to run all tests with a single command or button click is
nearly a requirement to claim that your project is doing XP. We
showed how to run tests with Ant in the previous chapter, and many
IDEs now make it possible to run tests by clicking on a menu item.

JUnit tests are pass/fail tests explicitly designed to run without
human intervention. Because of this design, you can (and should) add
your test suite to your continuous integration build process so the
tests run automatically.