cppUnit:setUp函数为多个testmethod执行一次

时间:2017-07-17 18:35:26

标签: c++ unit-testing cppunit

我有一个对象Obj正在做一些(精心设计)计算,想要查看天气结果(让我们称之为aComputedbComputed)是是否正确。因此,我想将此任务分解为多种测试方法:

testA() { load aToBe; check if number aComputed = aToBe }
testB() { load bToBe; check if number bComputed = bToBe }

问题是,Obj已被执行"两次(这需要很多时间) - 每次测试一次。问题是:我怎样才能管理它的执行情况?#34;一次,两次测试都使用了结果吗?

此时Obj放在setUp - 函数内,并将结果保存到测试类的私有成员。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

没有简单的解决方案允许您将代码拆分为两种测试方法。每个测试方法都会生成一个带有一组局部变量的新测试对象。<​​/ p>

显然你可以通过一个静态变量来解决这个问题,但从长远来看,这通常会导致问题并打破框架背后的想法。

更好的想法是在同一个测试方法中编写两个CPPUNIT_ASSERT。如果结果是同一计算的一部分,那么将检查分成两个独立的测试方法很可能没什么价值。