Применяется только к текущему тесту . Python unittest не имеет более широкого понятия «регистрация» в этом случае. Оба приведенных ниже теста пройдут:
# run these tests with "python -m unittest" in same directory as this file.
from unittest import TestCase
class Potato:
pass
def potato_compare(potato1, potato2, msg=None):
return True
class Test1(TestCase):
def test_one(self):
spud = Potato()
yam = Potato()
self.addTypeEqualityFunc(Potato, potato_compare)
self.assertEqual(spud, yam)
def test_two(self):
spud = Potato()
yam = Potato()
self.assertNotEqual(spud, yam)
Если вы хотите применить его к каждому тесту, вы можете добавить его к setUp
:
class Test2(TestCase):
def setUp(self):
self.addTypeEqualityFunc(Potato, potato_compare)
def test_one(self):
spud = Potato()
yam = Potato()
self.assertEqual(spud, yam)
def test_two(self):
spud = Potato()
yam = Potato()
self.assertEqual(spud, yam)
Предупреждение: Эта функциональность не возвращается в контейнеры . Например, [spud]
и [yam]
не будут распознаны как равные списки.