好的,因为Google搜索在一段时间内没有帮助我(即使使用正确的关键字)。
我有一个从TestCase扩展的类,其中我想要一些辅助方法,这些方法不会作为测试的一部分执行,它们将用于生成一些模拟对象等,几乎任何辅助方法测试
我知道我可以使用@skip装饰器,所以unittest没有运行特定的测试方法,但我认为这是一个丑陋的黑客用于我的目的,任何提示?
先谢谢,社区:D
答案 0 :(得分:46)
我相信你不必做任何事情。您的帮助方法不应该以{{1}}开头。
答案 1 :(得分:4)
单元测试执行[1]的唯一方法是setUp
,任何以test
和tearDown
[2]开头的方法,按此顺序排列。除了这三件事之外,你可以创建辅助方法并调用它们,并且它们不会被unittest执行。
您可以将setUp
视为__init__
:如果您要生成多个测试使用的模拟对象,请在setUp
中创建它们。
def setUp(self):
self.mock_obj = MockObj()
[1]:这不完全正确,但这些是编写测试时可以集中精力的三组方法。
[2]:由于遗留原因,unittest将同时执行test_foo
和testFoo
,但test_foo
是目前首选的样式。 setUp
和tearDown
应该如此显示。
答案 2 :(得分:2)
测试运行器只会直接执行以test
开头的方法,因此请确保您的帮助方法名称不以test
开头。