如何解决DRY Pytest参数化
我正在寻找一种为我的测试实现自定义参数化逻辑的方法。我的代码倾向于使用多态设计,因此这似乎是在单个测试中测试所有多态方法的最明智的方法。我目前如何装饰测试的模拟示例:
@mark.parametrize(
("cls","input","expected"),[
(ClsA,True),(ClsA,1,False),(ClsB,)
在测试中,我将在实例化输入并期望预期后在每个类实例上调用该方法。似乎(尤其是在使用较大的参数设置的情况下),对于使用它的所有参数设置一次“设置” ClsA,对于使用它的所有参数设置一次“设置” ClsB更有意义。如果您只有一个cls arg,则您可以做到:
@mark.parameterize(
"cls",[ClsA],)
@mark.parameterize(
("input","output"),[
(0,(1,]
)
但是,您不能将此语法与多个cls参数一起使用,因为它会创建不同装饰器的乘积,缺少一种方法来在一个装饰器中分配某些参数,而只能与另一个装饰器中的某些参数一起使用。有什么方法可以做我想要达到的目标吗?否则,我必须反复写出感觉很湿的相同论点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。