【发布时间】:2014-02-22 05:44:42
【问题描述】:
如何在 unitttest 中保留从 TestCase 继承的同一对象中所做的更改?
from unittest import TestCase, main as unittest_main
class TestSimpleFoo(TestCase):
foo = 'bar'
def setUp(self):
pass
def test_a(self):
self.assertEqual(self.foo, 'bar')
self.foo = 'can'
def test_f(self):
self.assertEqual(self.foo, 'can')
if __name__ == '__main__':
unittest_main()
即:我希望上面的这两个测试通过
【问题讨论】:
-
单元测试应该是独立的。 [无论如何,
self.foo指的是一个实例变量,而foo = 'bar'(它所在的位置)分配一个类变量。] -
我正在测试 OAuth2;
login设置了一个access_token,我需要在接下来的几个测试中使用它。 -
你不能用适当的
setUp创建一个不同的 测试类来模拟适当的access_token 吗? (根据需要让 setUp 调用 OAuth;此时更多的集成测试.. 但请认为 setUp 不可能是错误的,否则其他 TestCase 会失败。) -
见stackoverflow.com/questions/3843171/… - 不是真正的答案,而是一些建议和链接。
-
考虑调查
setUpClass()。当您的课程被调用时,它会运行一次。您可以使用它来设置多个测试所需的变量。
标签: python unit-testing persistence testcase python-unittest