Unit 8 • Lesson 7

Introduction to the unittest Module

Overview

The unittest module is Python's built-in framework for systematic testing. You'll write and run test cases, understand setup and teardown methods, and interpret results to improve code reliability, following industry-standard testing practices.

Intermediate 25–30 min

What You Will Learn in This Lesson

By the end of this lesson, you will know:

  • The unittest module: Python's built-in testing framework.
  • Test classes: Organizing tests using classes.
  • Test methods: Writing individual test cases.
  • Assertion methods: Different ways to check results.
  • Running unittest: Executing tests with the unittest framework.

Introduction to unittest

The unittest module is Python's built-in testing framework. It provides a structured way to write and organize tests, making it easier to test complex programs.

Why Use unittest?

  • Organized test structure
  • Built-in assertion methods
  • Test discovery (finds tests automatically)
  • Setup and teardown methods
  • Detailed test reports
Basic unittest Example
import unittest

def add(a, b):
    return a + b

class TestAdd(unittest.TestCase):
    def test_add_positive(self):
        self.assertEqual(add(2, 3), 5)
    
    def test_add_negative(self):
        self.assertEqual(add(-1, -2), -3)
    
    def test_add_zero(self):
        self.assertEqual(add(0, 5), 5)

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

Test Classes and Methods

In unittest, tests are organized into classes that inherit from unittest.TestCase:

1

Create Test Class

Inherit from unittest.TestCase

2

Write Test Methods

Methods starting with test_ are automatically run

3

Use Assertion Methods

Use self.assertEqual(), self.assertTrue(), etc.

4

Run Tests

Call unittest.main() or run with python -m unittest

Common Assertion Methods

unittest provides many assertion methods:

Assertion Methods

Method Checks Example
assertEqual(a, b) a == b self.assertEqual(2+2, 4)
assertTrue(x) x is True self.assertTrue(len([1,2]) > 0)
assertFalse(x) x is False self.assertFalse(1 > 2)
assertIn(item, container) item in container self.assertIn(3, [1,2,3])
assertRaises(Exception) Exception is raised self.assertRaises(ValueError, int, "hello")

Summary

In this lesson, you learned:

  • unittest module: Python's built-in testing framework
  • Test classes: Organize tests using classes
  • Test methods: Methods starting with test_
  • Assertion methods: assertEqual, assertTrue, assertIn, etc.
  • Running tests: Use unittest.main() or command line

Remember

unittest provides a professional structure for testing. As your projects grow, organized tests become essential. Start with simple tests and build up to more complex test suites!

End-of-Lesson Exercises

Think about these questions to reinforce what you've learned:

Exercise 1: unittest Module

What is the unittest module and how does it help organize tests?

Exercise 2: Test Structure

How do you structure tests using unittest? What are test classes and test methods?