在pythonunittest中,我试图理解,如果我在一个测试方法中更改了一个变量,那么这个变量在其他测试方法中是否会发生变化。或者对每个方法运行setUp和tearDown方法,然后为每个方法重新设置变量?在
我是说
AsdfTestCase(unittest.TestCase):
def setUp(self):
self.dict = {
'str': 'asdf',
'int': 10
}
def tearDown(self):
del self.dict
def test_asdf_1(self):
self.dict['str'] = 'test string'
def test_asdf_2(self):
print(self.dict)
所以我要问的是哪个输出test_asdf_2()“asdf”或“测试字符串”
每个测试用例都是独立的真实的。setup方法在每个测试用例之前运行,teardown在每个测试用例之后运行。在
所以为了回答您的问题,如果您更改测试用例中的一个变量,它不会影响其他测试用例。在
编写测试代码是正确的。当你自己做的时候,这总是一个更好的学习体验。不过,这是你的答案。在
示例代码:
输出:
^{2}$您可以看到setup方法是在每个测试之前运行的。然后在每次测试后运行“拆卸”方法。在
是的,setUp和tearDown在testcase类中的每个测试(即名称中以“test”开头的函数)之前运行。考虑这个例子:
从命令行调用它:
^{2}$(因此,是的,在您的示例中,由于重新执行设置,它将触发“asdf”,覆盖由测试2引起的更改)
相关问题 更多 >
编程相关推荐