Unit testing is essential for ensuring that individual pieces of code work as expected. In Python, unittest and pytest are popular frameworks for writing and running tests efficiently.
Unit Testing in Python
1. Why Unit Testing?
Unit testing helps in verifying that small code units, like functions and methods, work independently before integrating them into larger applications. This approach simplifies debugging and improves reliability.
Testing Basics Quiz
What is the primary purpose of unit testing?
When should unit tests be written?
2. The `unittest` Framework
The unittest module is Python's built-in framework for writing tests. Below is an example of a basic unit test:
import unittest
def add(a, b):
    return a + b
class TestMathOperations(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(3, 4), 7)
        self.assertEqual(add(-1, 1), 0)
if __name__ == '__main__':
    unittest.main()This example tests the add function to ensure it returns the correct results. assertEqual() verifies if the function output matches expected values.
unittest Quiz
What class should test cases inherit from in unittest?
How do you run unittest tests from the command line?
3. Key Methods in `unittest`
- assertEqual(a, b): Checks if- a == b.
- assertTrue(x): Checks if- xis true.
- assertFalse(x): Checks if- xis false.
- assertRaises(Exception): Tests that a specific exception is raised.
Each method offers a convenient way to define test conditions, making it easier to handle edge cases and error handling.
Assertions Quiz
Which assertion checks if a function raises an exception?
What does assertEqual(5, 2+3) do?
4. Introducing `pytest`
pytest is a flexible testing framework that is popular for its ease of use and powerful features.
Install it with:
pip install pytestWriting a test in `pytest` is straightforward:
# test_math_operations.py
from math_operations import add
def test_add():
    assert add(3, 4) == 7
    assert add(-1, 1) == 0To run the test, simply use:
pytest test_math_operations.pypytest Basics Quiz
What prefix does pytest use to identify test files?
How do you run all pytest tests in a directory?
5. Running Tests with `pytest`
pytest automatically detects test functions by looking for files and functions starting with test_. It provides more informative output by default and includes features like fixtures and parameterization.
pytest Features Quiz
What pytest feature allows you to reuse setup code?
What does the -v flag do in pytest?
6. Understanding `unittest` vs. `pytest`
Both frameworks are effective, but pytest is often preferred for its simplicity and extended functionality, while unittest is part of the Python standard library.
Framework Comparison Quiz
Which testing framework is included in Python's standard library?
Which framework typically requires less boilerplate code?
 
   
         
         
         
         
         
            