【问题标题】:cppUnit: setUp function executed once for multiple testmethodscppUnit:setUp函数为多个测试方法执行一次
【发布时间】:2017-07-17 18:35:25
【问题描述】:

我有一个对象Obj 正在做一些(精细的)计算,并想检查结果(我们称之为aComputedbComputed)是否正确。因此,我想将此任务拆分为多个测试方法:

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

问题是,Obj 被“执行”了两次(这需要很多时间)——每次测试一次。问题是:我如何管理它只是“执行”一次并且结果被两个测试使用?

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

感谢您的帮助!

【问题讨论】:

    标签: c++ unit-testing cppunit


    【解决方案1】:

    没有简单的解决方案可以让您将代码拆分为两种测试方法。每个测试方法都会产生一个新的测试对象,其中包含一组自己的局部变量。

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

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

    【讨论】:

    • 我可以用不同的参数创建 Obj。如果我仔细选择它们,我会得到(几乎)相同的结果。 TestA 执行此操作,而 testB 正在根据从文件加载的值验证结果。在单独的测试中进行此操作会很棒,因为测试的目的不同。我期待一个像你这样的答案——这也是我经过一番调查后得出的结论......
    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多