0Pricing
Python Academy · Lesson

Mocking with unittest.mock

Isolate units under test by mocking dependencies.

Why Mock?

Mocks replace real dependencies (databases, APIs, file system) with controllable fakes so tests run fast, deterministically, and in isolation.

from unittest.mock import Mock

api = Mock()
api.get_user.return_value = {"id": 1, "name": "Alice"}

result = api.get_user(1)
print(result)  # {'id': 1, 'name': 'Alice'}

Mock and MagicMock

Mock is the base class. MagicMock auto-configures magic/dunder methods so it can be used as iterators, context managers, etc.

from unittest.mock import MagicMock

m = MagicMock()
m.__len__.return_value = 5
print(len(m))  # 5

m.__iter__.return_value = iter([1, 2, 3])
for x in m:
    print(x)

All lessons in this course

  1. Writing Your First pytest Tests
  2. Fixtures and Setup/Teardown
  3. Parametrize and Test Coverage
  4. Mocking with unittest.mock
← Back to Python Academy