我们有许多CPPUNIT测试套件,每套测试都有自己的setUp()/ tearDown(),我要做的是在所有的测试套件中都有一个共同的setUp()/ tearDown()套房。据我所知,对于给定的套件,我有一个setUp()和Teardown(),它在套件中的每个测试之前运行
e.g。套房A我们有:
suiteA - setUp();
suiteA - test1();
suiteA - tearDown();
suiteA - setUp();
suiteA - test2();
suiteA - tearDown();
....
对于套件B,我们会:
suiteB - setUp();
suiteB - test1();
suiteB - tearDown();
suiteB - setUp();
suiteB - test2();
suiteB - tearDown();
....
我想要的是类似
的东西commonSetUp();
suiteA - setUp();
suiteA - test1();
suiteA - tearDown();
commonSetUp();
suiteA - setUp();
suiteA - test2();
suiteA - tearDown();
commonSetUp();
suiteB - setUp();
suiteB - test1();
suiteB - tearDown();
commonSetUp();
suiteB - setUp();
suiteB - test2();
suiteB - tearDown();
答案 0 :(得分:3)
我们通过不直接使用cppunit :: TestFixture来解决问题。我们有几个继承自cppunit :: TestFixture的类,它们实现了setUp和tearDown(并且还提供了一些常用的测试代码)。现在,每个测试类都继承自我们自己的一个类,用于执行setUp和tearDown。
如果有必要,可以稍后在类中覆盖setUp / tearDown,如果需要,可以调用基类setUp / tearDown。