我正在寫一個包,做我的測試是一個不錯的小程序員,但在這裏會發生什麼:新的類實例未初始化
class TestOne(unittest.TestCase):
def setUp(self):
self.finder = Finder()
def test_default_search_parts(self):
self.assertEqual(self.finder.search_parts, [])
class TestTwo(unittest.TestCase):
def setUp(self):
self.finder = Finder()
def test_add_letter(self):
self.finder.add('a')
self.assertNotEqual(self.finder.search_parts, [])
在這種情況下
,test_default_search_parts
失敗,AssertionError: ['a'] != []
和test_add_letter
通行證。我不知道這裏發生了什麼事。當我重寫test_default_search_parts
時會變得很奇怪:
def test_default_search_parts(self):
f = Finder()
self.assertEqual(f.search_parts, [])
發生同樣的故障。我在做什麼錯在這裏初始化我的實例?
哦,我用鼻子來運行它們,如果那麼重要。
你可以拋出Finder的代碼嗎?請記住,測試的*順序*不一致或不能保證,所以如果這些實例共享某些全局狀態,可能會以混亂的方式發生嚴重錯誤。 – Henry 2011-04-27 17:50:48
也許'Finder'將'search_parts'存儲爲類級屬性? – samplebias 2011-04-27 17:51:55
@samplebias準確的,我會發佈一個問題的例子。 – Henry 2011-04-27 17:55:15