对于鼻子测试类,使用__init __(self)而不是setup(self)是否有缺点?
问题内容:
跑nosetests -s
了
class TestTemp():
def __init__(self):
print '__init__'
self.even = 0
def setup(self):
print '__setup__'
self.odd = 1
def test_even(self):
print 'test_even'
even_number = 10
assert even_number % 2 == self.even
def test_odd(self):
print 'test_odd'
odd_number = 11
assert odd_number % 2 == self.odd
打印出以下内容。
__init__
__init__
__setup__
test_even
.__setup__
test_odd
.
测试实例是在测试运行之前创建的,而安装程序是在测试之前运行的。
对于一般情况,__init__()
setup()完成相同的操作,但是使用__init__()
替代setup()有不利之处吗?还是同时使用?
问题答案:
虽然__init__
可以代替setUp
,但您应该坚持使用setUp
它,因为它是编写测试的风格化协议的一部分。它也有一个对口tearDown
,这__init__
不,还有讲座和模块级的同行,其__init__
没有。
编写测试类与编写普通类不同,因此,您应遵循编写测试类的风格。