2
我寫了一個自定義斷言來測試兩個對象列表是否包含具有相同屬性的對象,現在我想使用否定測試來檢查兩個列表是否不相等。否定python中的自定義單元測試
from unittest import TestCase
from classes import *
class BaseTestCase(TestCase):
def assertCountObjectsEqual(self, list1, list2):
if len(list1) != len(list2):
raise AssertionError("lists must be the same length")
elif any(t1.__class__ != t2.__class__ or t1.__dict__ != t2.__dict__ for t1, t2 in zip(list1, list2)):
raise AssertionError("objects are not the same")
else:
pass
肯定的情況下工作
class TestFillDemand(BaseTestCase):
def test_fruit(self):
self.assertCountObjectsEqual([Apple(), Apple(), Banana()], [Apple(), Apple(), Banana()])
但我希望能夠重用的代碼,類似如下:
def test_fruit_unequal(self):
self.assertRaises(AssertionError, self.assertCountObjectsEqual([Apple(), Apple(), Banana()], [Apple(), Banana()]))
,而不必重新定義assertCountObjectsUnequal
方法。不幸的是,上面的代碼不起作用。
有沒有簡單的方法來做到這一點?
這是有效的,但我想知道是否有辦法否定測試,而不必單獨定義「Not」版本。 –