我尝试使用鼻子测试但是当我运行下面的测试用例时
import unittest
class TestSuite(unittest.TestCase):
b = []
def setUp(self):
self.b.extend([10, 20])
def tearDown(self):
self.b = []
def test_case_1(self):
self.b.append(30)
assert len(self.b) == 3
assert self.b == [10, 20, 30]
def test_case_2(self):
self.b.append(40)
assert len(self.b) == 3
assert self.b == [10, 20, 40]
但是所有测试用例都没有通过
$> nosetest test_module.py
.F
======================================================================
FAIL: test_case_2 (test_module2.TestSuite)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/knt/test_module2.py", line 19, in test_case_2
assert len(self.b) == 3
AssertionError
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (failures=1)
发生了什么 ???我希望在运行 test_case_1 之后,会调用 tearDown ,self.b
所以[]
. 所以对于下一个测试用例test_case_2
,setUp
运行并且self.b
是[10, 20]
。
但实际上,setUp
在self.b is [10, 20, 30]
.
我不知道为什么。我认为 statement 一定有一些问题self.b = []
。
有什么相关的指针,我猜?我仍然没有弄清楚,但我找到了修复这个错误的方法。只需更改self.b = []
为del self.b[:]
.
任何人都可以帮我找出问题吗?太感谢了。