我试图为一个类的__init__
方法编写测试,该类有两个位置参数和两个必须一起提供的可选参数。看起来像这样:
class Example(object):
def __init__(self, im_1, im_2, im_3=None, im_4=None, foo='bar'):
if (im_3 is not None and im_4 is None) or (im_3 is None and im_4 is not None):
raise ValueError('im_3 and im_4 have to be provided together.')
# and so on...
我使用pytest.raises
来处理只有一个可选参数被传递的情况,但是当两个参数都被传递时,我如何测试Example.__init__
是否工作?在
到目前为止,我正在创建一个类的实例,并在测试结束时断言True,前提是如果出现错误,测试将无法到达assert,但这似乎是在测试Example.__init__
的任何部分都没有抛出错误,尤其是有效的参数组合是否有效。在
现在的测试是这样的:
^{pr2}$有更好的方法吗?在
我认为你必须在创建后测试实例的状态。第三和第四个测试你已经做了不该做的测试。在
扩展您的
__init__
它可以很简单地断言每个参数都是本地绑定的,或者如果您做一些更奇特的初始化,您可以测试它。在
^{pr2}$当然,这是有很多重复和测试可以更好地考虑。你可以检查测试的参数化来帮助你。在
相关问题 更多 >
编程相关推荐