Unit testing is the process of breaking your program into pieces, and subjecting each piece to a series of tests. The primary goal of unit testing is to take the smallest piece of testable software in the application, isolate it from the remainder of the code, and determine whether it behaves exactly as you expect.
Usually tests are run as separate programs as part of the Continuous Integration systems, but the method of testing varies, depending on the language, and type of software.
How to write unit tests?
- The scope of a unit test should be an individual piece or unit of code and not beyond.
- Changing other parts of code should not affect the unit test if those are isolated and written for a specific unit of code.
- The code should be structured in a way that makes it easy to unit test to make your tests effective. Following functional programming practices helps.
- Unit tests should run on every code change.
What are the benefits of unit testing?
- Unit testing allows programmers to re-factor code or upgrade system libraries at a later date and make sure the code still works correctly.
- Fixing an issue in an isolated manner saves debugging time.
- Spotting potential bugs are much easier with unit tests than in during integration tests and functional tests.
- Unit testing helps programmers learn what functionality is provided by a unit and how to use to gain a basic understanding of the unit’s interface.