我正在写一个包,做我的测试是一个不错的小程序员,但在这里会发生什么:新的类实例未初始化
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