Writing unit tests with pytest
Untested code is broken code. Manual testing is essential to ensuring that our software works as expected and does not contain critical bugs. However, manual testing is severely limited because bugs may be introduced at any time in the code.
Nowadays, automated testing is a standard practice in software engineering. In this recipe, we will briefly cover important aspects of automated testing: unit tests, test-driven development, test coverage, and continuous integration. Following these practices is fundamental in order to produce high-quality software.
Getting ready
Python has a native unit testing module that you can readily use (unittest
). Other third-party unit testing packages exist. In this recipe, we will use pytest. It is installed by default in Anaconda, but you can also install it manually with conda install pytest
.
How to do it...
Let's write in a
first.py
file a simple function that returns the first element of a list:>>> %%writefile first.py...