我有一个程序,有多个非常相似的类:
class BlackBox1():
def calc(self, a, b):
return a + b
class BlackBox2():
def calc(self, a, b):
return a * b
...
现在我想为所有这些类编写单元测试。当然,我可以为每个黑盒编写单独的测试。不管怎样,由于每个blackbox都有完全相同的方法要测试calc(a, b)
,我想知道是否有类似于“最佳实践”的东西,自动地将类和预期结果提供给抽象测试框架,比如
有没有一种方法可以将{"blackbox": Blackbox1, "a": 3, "b": 5, "result": 8}
和{"blackbox": Blackbox2, "a": 4, "b": 7, "result": 28}
传递给TestAbstractBox类,这样就不会有多次相同的代码,而是有一种简单的方法来测试新的黑匣子?在
我认为这不是一个好办法。在
一个测试方法应该只做一个测试,而不是循环几个
assert*
调用。否则,在失败的情况下,您将无法轻松判断哪个测试失败。毕竟,这就是单元测试的全部意义所在。在另外,您不应该冒着破坏现有测试的风险,为新类添加新的变体,或者将现有测试重构为一些常用方法。在
对于具有相同方法的多个类(考虑在多个派生类中实现一个公共接口),将接口的公共属性的所有测试放在一个基类中,然后为每个被测类派生单独的测试类可能会很有用。这些派生类将实现合适的}方法。它们还可以添加更多特定于被测类的测试用例。在
setUp
和{您只需将这些类添加到
setUp
:编辑版本2:
^{pr2}$我想我找到了一个解决方案,基本上如下所示:
不管怎样,谢谢你的回答,也很抱歉一开始没有找到这样的答案。在
相关问题 更多 >
编程相关推荐