What Is Unit Testing?

Learn about the importance and steps of creating unit tests for our code.

Unit testing

Unit testing is a software development process in which the smallest testable parts of the system are individually analyzed to guarantee that they’re acting as expected. It’s an important step in the development process, and if done correctly, unit tests can detect early flaws in code, which may be more difficult to find in later testing stages.

Unit tests are typically isolated to ensure a unit doesn’t rely on any external code or functions, which makes us recall one of the principles of functional programming about pure functions. Unit tests should be treated as deliverables in the development process. Moreover, they should be automated to run whenever a new feature is implemented. This way, we’re able to ensure that the current changes haven’t broken the previous features.

How unit tests work

A unit test comprises three stages:

  1. Planning: This involves defining the scenarios in which we need to guarantee our code is working correctly. It’s recommended to think about border scenarios to guarantee that those breakpoints are being followed.

  2. Writing test cases: This entails transforming the planned scenarios into test code and splitting them into separate cases to improve readability and maintenance.

  3. Performing the unit test: This is where we execute the test manually and ideally, add an automated run to the system.

Test-driven development

Testing is so important that there’s a test-driven development (TDD) style that says that when we start a new implementation, we need to create unit tests that initially fail. Then we write the code or refactor the application until the tests pass. TDD typically results in an explicit and predictable codebase.

Unit testing advantages

There are many advantages to unit testing, including the following:

  • Problems are identified earlier in the software development phase, and fixing them earlier is cheaper for the company than fixing them later.

  • Developers can quickly make changes to the codebase and validate it.

  • Developers can reuse code and migrate it to new projects.

Types of unit testing

Example-based tests

In example-based tests, for a given argument, we get a known return value. Following the principle of pure functions, we recall that the idea is to have a function in which, for a determined given value, it will always return a single response that we’re able to predict. Let’s look at a simple example:

Get hands-on with 1400+ tech skills courses.