我有一个测试(unittest.TestCase),我想测试具有相同接口的类的更多不同实现。
我做的最大值是这样的:
def create_test(class_to_test):
class TestClass(unittest.TestCase):
def setUp(self):
self.class_to_test = class_to_test
self.class_to_test.two = 2
def test_2(self):
self.assertEqual(self.claa_to_test.two, 2)
return TestClass
test = [create_test(x) for x in classes_to_test]
但我想要更多一点,我希望类的定义在不同的文件而不是函数中,并且测试尽可能更标准(测试应该是“正常的”另一个正常测试)。
我刚看到How to run the same test-case for different classes? ...
编辑:我知道要在运行时测试的类的名称... (这是一个重要的特殊情况)
我是意大利人,所以我的英语不完美,对不起。
答案 0 :(得分:2)
不完全确定这是否是您正在寻找的,但您可以继承单元测试:
class A:
def __init__(self):
self.a = 10
class B(A):
def __init__(self):
A.__init__(self)
self.b = 50
class A_Test(unittest.TestCase):
def setUp(self):
self.test_obj = A()
def test_A(self):
self.assertEqual(self.test_obj.a, 10)
class B_Test(A_Test):
def setUp(self):
self.test_obj = B()
def test_B(self):
self.assertEqual(self.test_obj.b, 50)
test_A
在B_Test中继承,因此该测试将在您的(A继承的)B对象的类中运行。