Да, текстовое приспособление (воплощенное в классе) должно быть в точности набором тестов, разделяющих общие потребности в настройке и разборке.
В идеале, юнит-тест должен называться testThisConditionHolds
. public_items
не является «условием». Откуда бы ни исходила невероятно черная магия public_items
, я буду писать тесты вроде:
def testNoPublicItemsRecordedIfNoneDefined(self):
assertEqual([], public_items)
def testOnePublicItemsIsRecordedRight(self):
item = PublicItem()
assertEqual([item], public_items)
def testTwoPublicItemsAreRecordedRight(self):
item1 = PublicItem()
item2 = PublicItem()
assertEqual([item1, item2], public_items)
Если public_items
является магическим списком, который, как предполагается, магически заполняется как побочный эффект вызова магической функции PublicItem
, то вызов последней в setUp
фактически уничтожил бы способность правильно проверять эти простые случаи, так что, конечно, я бы этого не сделал!