● Used to test the lowest level components of a program
- Test individual functions / methods
● Can use stubs to provide supporting functionality/data needed by the function being tested, but whose execution is not critical to what is being tested.
● Should be created and run by developers as they code
- Developers can manually execute tests
- Manually, you can execute a single test, a group of tests, or the entire suite of tests
- All unit tests should pass cleanly before checking in / submitting code
● Can be executed automatically by Continuous Integration
- Runs against main development branch (checked-in code)
- Used to limit errors introduced by each code merge