Unit Tests

A unit test is a small software program written specifically to automatically test another piece of production-targeted software. These tests operate in a "black box" mode, that is, the unit test provides a range of inputs to the target software and detects whether the target software returns the correct output, thereby confirming that the target software is functioning properly. Unit tests should be written for the smallest possible self-contained "unit" of functioning software. A collection of these unit tests comprise the components of an automated testing strategy and are the basis of a Continuous Integration process. In the eXtreme Programming development method, unit tests are written before the target software is written, adhering to the practice of test-driven development.