我有一个包含多个非常相似的类的程序:
class BlackBox1():
def calc(self, a, b):
return a + b
class BlackBox2():
def calc(self, a, b):
return a * b
...
现在我想为所有这些类编写单元测试。当然,我可以为每个 Blackbox 编写单独的测试。无论如何,由于每个黑盒都有完全相同的calc(a, b)
测试方法,我想知道是否有类似“最佳实践”的东西,自动将类和预期结果提供给抽象测试框架,比如
import unittest
class TestAbstractBox(unittest.TestCase):
def setUp(self):
self.box = blackbox()
self.param_a = a
self.param_b = b
self.expected_result = result
def test_calc_method(self):
real_result = self.box.calc(self.param_a, self.param_b)
self.assertEqual(real_result, self.expected_result,
"{0} gives wrong result".format(self.box.__class__))
TAbstractTest = unittest.defaultTestLoader.loadTestsFromTestCase(TestAbstractBox)
有没有办法将 TestAbstractBox 类传递{"blackbox": Blackbox1, "a": 3, "b": 5, "result": 8}
给{"blackbox": Blackbox2, "a": 4, "b": 7, "result": 28}
没有多次相同的代码,但有一种简单的方法来测试新的黑盒?