给定一个Python类层次结构,比如说
class Base:
def method1
def method2
def method3
...
class Derived1(Base)
class Derived2(Base)
等
并且假定Base定义了一些在每个Derived类中以不同方式重新实现的公共接口。 什么是对所有类的所有成员函数进行单元测试的最直接的方法。 由于我有一个类层次结构,我想做类似的事情......
class MyTestCase(unittest.TestCase):
def testMethod1:
## Just as an example. Can be similar
self.failUnless(self.instance.method1())
def testMethod2
...
然后使用针对类层次结构的不同实例化的测试用例设置测试套件 但是如何将“instance”参数放入MyTestCase类?
答案 0 :(得分:1)
skip
装饰器适用于所有子类和基类,因此您不能简单地告诉unittest跳过基础。最简单的事情可能是根本没有从TestCase派生的基础测试类:
import unittest
class Base: pass
class Derived1(Base): pass
class BaseTest(object):
cls = None
def setUp(self):
self.instance = self.cls()
def test_Method1(self):
print("run test_Method1, cls={}".format(self.cls))
class TestParent(BaseTest, unittest.TestCase):
cls = Base
class TestDerived1(BaseTest, unittest.TestCase):
cls = Derived1
unittest.main()
答案 1 :(得分:0)
您可以构建相同的测试层次结构
class BaseTest()
cls = None
def setUp(self):
self.instance = self.cls()
def test_Method1(self)
...
class TestParent(unittest.TestCase, BaseTest):
cls = Base
class TestDerived1(unittest.TestCase, BaseTest):
cls = Derived1
...