A way of testing code, an integral part of the Extreme Programming methodology. Each unit of the program, usually a class in modern object-oriented programs, has a unit test written for it. The unit test utilizes the class it's testing in various ways, giving in certain inputs and verifying that the proper expected output occurs. Different than functional tests or acceptance tests which are larger scale tests, testing whole pieces of functionality.

I use JUnit for my Java tests.