我想用某些類級變量在一個類上運行幾個unittests。由於單元測試代碼保持對類的引用,所以類級變量不會重置爲預運行值。除了在被測試的類的初始化方法中重置所有類級變量之外,如何爲每個單元測試方法獲得新類?刪除單元測試之間對Python類的引用
class NonEmptyClassTest(unittest.TestCase):
def test_makeName(self):
nec = NonEmptyClass()
nec.addName("Fred")
nec.printAllData()
self.assertEquals(1 , len(nec.dummy_data))
def test_makeName_1(self):
nec = NonEmptyClass()
nec.addName("Fred")
nec.printAllData()
self.assertEquals(1 , len(nec.dummy_data))
class NonEmptyClass(object):
dummy_data = {}
def printAllData(self):
for k,v in self.dummy_data.items():
print k, v
def addName(self, name):
if not name in self.dummy_data:
self.dummy_data[name] = name+"_value"
else:
name = name + ".1"
self.dummy_data[name] = name+"_value"
這個相當擊敗類級變量的整點。 OP **希望班級共享字典。只是不在單元測試。 –