Python TestCase中的非测试方法

时间:2011-08-05 18:39:57

标签: python unit-testing

好的,因为Google搜索在一段时间内没有帮助我(即使使用正确的关键字)。

我有一个从TestCase扩展的类,其中我想要一些辅助方法,这些方法不会作为测试的一部分执行,它们将用于生成一些模拟对象等,几乎任何辅助方法测试

我知道我可以使用@skip装饰器,所以unittest没有运行特定的测试方法,但我认为这是一个丑陋的黑客用于我的目的,任何提示?

先谢谢,社区:D

3 个答案:

答案 0 :(得分:46)

我相信你不必做任何事情。您的帮助方法不应该以{{1​​}}开头。

答案 1 :(得分:4)

单元测试执行[1]的唯一方法是setUp,任何以testtearDown [2]开头的方法,按此顺序排列。除了这三件事之外,你可以创建辅助方法并调用它们,并且它们不会被unittest执行。

您可以将setUp视为__init__:如果您要生成多个测试使用的模拟对象,请在setUp中创建它们。

def setUp(self):
    self.mock_obj = MockObj()

[1]:这不完全正确,但这些是编写测试时可以集中精力的三组方法。

[2]:由于遗留原因,unittest将同时执行test_footestFoo,但test_foo是目前首选的样式。 setUptearDown应该如此显示。

答案 2 :(得分:2)

测试运行器只会直接执行以test开头的方法,因此请确保您的帮助方法名称不以test开头。