В вашем модульном тесте вы создаете объект результата, который является MathClass
объектом `:
def setUp(self):
self.result = MathClass()
Позже вы вызываете метод add
объекта MathClass. Проблема в том, что ваш метод add
возвращает self
, например, сам объект Math.
def add(self, num, *nums):
self.result += num + sum(nums)
return self
Внутренне, MathClass.result
может быть изменен, но add
по-прежнему возвращает объект Math.
Поэтому ваша проверка assertEquals
сравнивает объект Math и int
(18). Которые не равны:)
Если вы хотите сохранить имена переменных, вы можете создать локальную переменную, которая получает результат объекта MathClass и сравнивает его со значением 18:
def testAdd(self):
self.result.add(4,5,9)
value = self.result.result
self.assertEqual(value, 18)
или любым другим вариант, который вы найдете более подходящим.