一种常见的方法是使用一个抽象方法将所有测试组合在一个类中,该方法创建一个后端实例(如果您需要在测试中创建多个实例),或者期望setUp
创建一个后端实例。
然后,您可以根据需要创建创建不同后端的子类。
如果您正在使用自动检测TestCase
子类的测试加载器,您可能需要进行一项更改:不要将公共基类TestCase
设为 : 的子类,而是将其视为 mixin,并让后端类同时从TestCase
和混音。
例如:
class BackendTests:
def make_backend(self):
raise NotImplementedError
def test_one(self):
backend = self.make_backend()
# perform a test on the backend
class FooBackendTests(unittest.TestCase, BackendTests):
def make_backend(self):
# Create an instance of the "foo" backend:
return foo_backend
class BarBackendTests(unittest.TestCase, BackendTests):
def make_backend(self):
# Create an instance of the "bar" backend:
return bar_backend
从上面构建测试套件时,您将拥有独立的测试用例FooBackendTests.test_one
,并BarBackendTests.test_one
在两个后端测试相同的功能。