我目前有一个 Pythonunittest
测试用例,如下所示:
from unittest import TestCase as UTestCase
import inspect
class BaseParentTaskTest(UTestCase):
def test_case_one(self):
class A(BaseParentTask):
def run(self, a, b):
pass
instance = A()
print inspect.getargspec(instance.run).args
instance._validate()
if instance.valid:
self.fail("Failed to invalidate based on wrong argument count.")
def test_case_two(self):
class A(BaseParentTask):
def run(self, a, b, c, d):
pass
instance = A()
print inspect.getargspec(instance.run).args
if instance.valid:
self.fail("Failed to invalidate based on wrong argument kw names.")
从我的测试看来,在运行之后test_case_one
,该类被保存在内存中,并且在运行时A
不会被覆盖。这会导致失败。A
test_case_two
test_case_two
这可以从日志中看出。在test_case_one
中,预期输出为(self, a, b)
,它是:
(self, a, b)
在test_case_two
中,预期输出为(self, a, b, c, d)
:
(self, a, b)
然而,显然不是。
为什么A
实例方法一退出类就没有消失?我该如何解决这个问题以使我的测试通过?