[파이썬] unittest 테스트 러너 사용법

Unit testing is an essential part of software development as it helps ensure the quality of our code by testing individual units or components. In Python, the unittest library provides a testing framework that makes it easy to write and run tests.

Setting up a test case

To get started with unittest, the first thing we need to do is create a test case. A test case is a class that inherits from the unittest.TestCase class and contains methods that define different test cases.

import unittest

class MyTestCase(unittest.TestCase):
    def test_addition(self):
        result = 2 + 2
        self.assertEqual(result, 4)

    def test_subtraction(self):
        result = 5 - 3
        self.assertEqual(result, 2)

In the example above, we have created a test case class called MyTestCase. It contains two test methods: test_addition and test_subtraction. Each test method should have a name starting with “test” and should use the various assert methods provided by unittest to check the expected results.

Running the test case

Once we have defined our test case, we need to run it to see if the tests pass or fail. To run the tests, we can use the unittest.TextTestRunner() class. Here’s an example of how to run the MyTestCase test case:

if __name__ == '__main__':
    unittest.main()

We wrap the unittest.main() call inside the if __name__ == '__main__': condition to ensure that the test case is only executed when we run the script directly.

Test results

When we run the test case, the unittest framework will display the results in the console. Each test method will be marked as either “OK” if the test passes, or “FAIL” if the test fails.

..
----------------------------------------------------------------------
Ran 2 tests in 0.001s

OK

In the example above, we can see that both tests (test_addition and test_subtraction) passed successfully, indicated by the “OK” message.

Conclusion

Unit testing using the unittest library in Python is a powerful way to ensure the correctness of your code. By following the guidelines and best practices, you can write reliable and effective tests to catch any bugs or issues before they impact your production environment.