Unit tests
- Unit tests are tests of modularity
- They test specific part/piece of the system (called module) independently from other modules of the system
- For example, test of module (component in Front End) that shows red error text:
- module has input data (error status - existing or not)
- output data" is
- null (if error does not exist)
- red text (if error exists)
- unit test should check that module/component returns specific output data based on input data
- in the system this module get input data (error status) from other module
- we don’t care about that because unit test checks module independently from other modules
- for checking interaction between several modules we should use Integration tests
- Unit tests are documenting behavior of specific module
What is unit?
- Basically, it’s module
- In languages like JavaScript modules are mostly files
- But if file contains few classes then
- classes are modules
- file isn’t module
- An example in React development
- React app consists of components
- Each component could contain:
- state
- methods (in class component) or functions (in functional component)
- It doesn’t make sense to test each function/method of the component because:
- a function/method doesn’t make sense outside of the component
- a function/method most likely updates component’s state
- A unit here is the component itself
- Unit is a stateless function
- It could be classic helper function