Чем отличается метод `assertEqual()` от `assertNotEqual()` в `unittest`?

Методы assertEqual() и assertNotEqual() в unittest используются для проверки равенства и неравенства соответственно.
  • assertEqual(a, b) проверяет, что a == b. В случае, если это не так, тест проваливается.
  • assertNotEqual(a, b) проверяет, что a != b. В случае, если это не так, тест проваливается.
Оба метода являются утверждениями (assertions) и поднимают исключение AssertionError при провале проверки.

В контексте модуля unittest в Python, методы assertEqual() и assertNotEqual() являются частью набора методов проверки (assertion methods), предоставляемых классом TestCase. Они используются для проверки ожидаемых результатов в ваших тестах.

assertEqual(a, b, msg=None)

Этот метод проверяет, равны ли значения a и b. Если значения a == b, то тест считается пройденным (passed). Если же значения не равны, то тест завершается неудачей (failed) с выбросом исключения AssertionError. Необязательный аргумент msg позволяет добавить пользовательское сообщение, которое будет включено в вывод ошибки в случае неудачи теста.

Пример:

        
import unittest

class MyTest(unittest.TestCase):
    def test_equality(self):
        self.assertEqual(2 + 2, 4, "Сумма 2 + 2 должна быть равна 4")
        self.assertEqual("hello", "hello")
        
    

assertNotEqual(a, b, msg=None)

Метод assertNotEqual(a, b) выполняет противоположную проверку. Он проверяет, что значения a и b не равны. Если a != b, то тест считается пройденным. Если же a == b, то тест завершается неудачей с выбросом исключения AssertionError. Как и assertEqual(), он принимает необязательный аргумент msg для пользовательского сообщения об ошибке.

Пример:

        
import unittest

class MyTest(unittest.TestCase):
    def test_inequality(self):
        self.assertNotEqual(2 + 2, 5, "Сумма 2 + 2 не должна быть равна 5")
        self.assertNotEqual("hello", "world")
        
    

Ключевое различие:

  • assertEqual() проверяет, что два значения равны.
  • assertNotEqual() проверяет, что два значения не равны.
Выбор между этими двумя методами зависит от того, какое именно условие вы хотите проверить в вашем тесте. В целом, они служат для утверждения (assertion) ожидаемого состояния вашей программы во время тестирования.
0