我需要针对多个REST后端资源运行一个Python unittest测试套件,因此我需要将Resource对象传递给测试套件和各个测试用例。

设置全局变量是执行此操作的正确方法,还是有更好的方法?

资源=资源('http://example.com')

class RestTestCase(unittest.TestCase):
    def setUp(self):
        self.resource = resource

def suite():
    suite = unittest.TestSuite()
    suite.addTest(unittest.makeSuite(RestTestCase))
    return suite

if __name__ == '__main__':
    unittest.main(defaultTest='suite')

最佳答案

遵循标准库如何编写其自己的单元测试的示例。将资源放在类变量中,并使用继承来测试各种资源:

class RestTestCase(unittest.TestCase):
    resource = Resource('http://example.com')

    def sometest(self):
        r = self.resource
        ...
        self.assertEqual(expectedresult, actualresult)

class SomeOtherRestTestCase(RestTestCase):
    resource = Resource('http://someother.example.com')

class YetAnotherRestTestCase(RestTestCase):
    resource = Resource('http://yetanother.example.com')

if __name__ == '__main__':
    unittest.main()

关于python - 将var传递给Python单元测试TestCase和/或TestSuite的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8276310/

10-13 08:16