[파이썬] unittest TestCase 클래스 사용법

Unittest is a built-in unit testing framework in Python that allows you to write and run tests for your code. One of the core components of unittest is the TestCase class. In this blog post, we will explore the usage of the TestCase class and how it can be leveraged to write effective unit tests.

Creating a Test Case

To start using the TestCase class, you need to create a new class that inherits from it. This class will contain the individual test methods. Let’s create a simple example to demonstrate this:

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)

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

In this example, we have created a test case class called MyTestCase, inheriting from unittest.TestCase. Inside this class, we have defined two test methods: test_addition and test_subtraction.

The test_addition method performs an addition operation and uses the assertEqual method from TestCase to check if the result is equal to the expected value of 4. Similarly, the test_subtraction method performs a subtraction operation and checks if the result is 2.

Running the Tests

To run the tests defined in our MyTestCase class, we use the unittest.main() function. This function discovers all the test methods in the TestCase subclass and executes them.

You can run the test script as a standalone Python script or using a test runner. When running as a standalone script, the if __name__ == '__main__' condition ensures that the tests are only executed if the script is run directly, not when imported as a module.

Test Assertions

The TestCase class provides a wide range of assertion methods that you can use to verify the expected behavior of your code. Some commonly used assertion methods include:

These assertion methods help you to validate the correctness of your code and ensure that it behaves as expected.

Test Discovery

When running the tests using unittest.main(), the test framework automatically discovers the test cases and test methods within your code. It looks for methods that start with the name test_ and considers them as test methods.

You can also organize your tests into separate test case classes and have multiple test case classes within a single test script. The test discovery mechanism will find and execute all the relevant test methods.

Conclusion

The TestCase class in the Unittest framework provides a powerful and flexible way to write and execute tests for your Python code. By utilizing the various assertion methods and organizing your tests effectively, you can ensure the reliability and correctness of your code.