2

我们有许多 CPPUNIT 测试套件,每个测试套件都有自己的 setUp()/tearDown(),我想做的是在所有套件中都有一个通用的 setUp()/tearDown()。据我了解,对于给定的套件,我有一个 setUp() 和 Teardown() 在套件中的每个测试之前运行

例如,对于套件 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();
4

1 回答 1

3

我们通过不直接使用 cppunit::TestFixture 来解决问题。我们有几个继承自 cppunit::TestFixture 的类,它们实现了 setUp 和 tearDown (并且还提供了一些常见的测试代码)。现在,每个测试类都继承自我们自己的一个执行 setUp 和 tearDown 的类。

如有必要,您可以稍后在一个类中覆盖 setUp/tearDown,并在必要时调用基类 setUp/tearDown。

于 2013-10-30T15:50:15.800 回答