Table of contents:
The unittest
module is a python's builtin test module. It contains all basics
of software testing, example: test discovery,assertion, setup/teardown, etc.
As python is an Object-oriented programming language, it's unittest
module
also implements Class-based interface to setup the test module. We can easily
import unittest
module to start testing our software.
The following is a basic example of a testcase which will test for the correctness of the given function, "reverse_word".
import unittest
def reverse_word(word: str):
return word[::-1]
class TestReverseWord(unittest.TestCase):
def test_reverse():
self.assertEqual(reverse_word("abcde"), "edcba")
if __name__ == "__main__":
main()
A setup method is a method that runs before each test. The setUp
method
generally initializes values before testcases are run. For example, If we need
an authorization token to test an API, we can get them in the setUp
method.
A tearDown
method is a method that runs after each test. This method is used
as a cleanup method after test gets executed.
An example of setup and teardowm methods are as follows:
def celsius_to_fahrenheit(celsius: float):
return (9 / 5) * celsius + 32
class TestTemperatureChange(TestCase):
def setUp(self) -> None:
# This method runs before each test case inside of this test class
self.celsius = 37
def tearDown(self) -> None:
# This method runs after each test case inside of this test class
del self.celsius
def test_conversion_from_setup(self):
self.assertAlmostEqual(celsius_to_fahrenheit(self.celsius), 98.6)