assertEqual & assertNotEqual
assertEqual(a, b) verifies that two values are equal, while
assertNotEqual(a, b) verifies they are not equal. These are the most commonly
used assertions in unittest.
Basic Usage
import unittest
class TestEquality(unittest.TestCase):
def test_equal_numbers(self):
self.assertEqual(2 + 2, 4)
def test_not_equal_strings(self):
self.assertNotEqual("hello", "world")
def test_equal_lists(self):
self.assertEqual([1, 2, 3], [1, 2, 3])
def test_not_equal_dicts(self):
self.assertNotEqual({"a": 1}, {"b": 2})
Custom Failure Messages
def test_user_age(self):
user_age = 25
self.assertEqual(
user_age, 18,
f"Expected age 18 but got {user_age}"
)
def test_status_code(self):
response_code = 500
self.assertEqual(
response_code, 200,
f"Expected 200 OK but got {response_code}"
)
What Can Be Compared
- Numbers:
assertEqual(1, 1) - Strings:
assertEqual("a", "a") - Lists, tuples, sets:
assertEqual([1], [1]) - Dictionaries:
assertEqual({"k": "v"}, {"k": "v"}) - Objects: compares using
__eq__method
Key Takeaway
Use assertEqual and assertNotEqual for value comparisons.
Always include a descriptive failure message to quickly identify test failures.