0

之后如何在 CPPUNIT_TEST 中访问我在第一个 CPPUNIT_TEST 中设置的变量?

对于 EX。

CPPUNIT_TEST_SUITE(TestingEx);
CPPUNIT_TEST(ex1);
CPPUNIT_TEST(ex2);
CPPUNIT_TEST_SUITE_END();

public:
int x=0;
void ex1()
{ 
do some testing and logic would set x to someother value ...
    x=4;
}
void ex2()
{
use x to do some testing // x should be 4, but I get 0??
}

有人可以解释一下我出了什么问题,我该如何让它工作?

4

1 回答 1

1

Cppunit 遵循每个测试相互分离的概念。这对所有单元测试框架来说都是一个有用的假设,更糟糕的是,它不能保证测试以特定的顺序执行。

您有解决问题的方法:

  • 在你的类中使用静态变量,这很难看,在编写测试时很少使用,几乎从不用于单元测试。
  • 在执行每个测试之前使用 setUp 初始化您的测试环境
  • 以其他方式初始化您的数据,例如构造函数,在测试方法中,......在每次测试之前
于 2012-06-28T22:16:13.190 回答