cppunit导出局部变量

时间:2017-12-21 15:33:56

标签: c++ unit-testing cppunit

for (int i = 0; i < 50; ++i)
    {
        CPPUNIT_ASSERT(RtcTime_GetDayOfWeek(TimeC[i])==RtcTime_GetDayOfWeek(TimeC[i+1]));
    }

此测试失败了。我怎样才能导出这个测试失败的'i'?

现在我的输出

1) test: testEq (F) line: 55 rtc_test.cxx
assertion failed
- Expression: RtcTime_GetDayOfWeek(TimeC[i])==RtcTime_GetDayOfWeek(TimeC[i+1])

我想要那样的东西

1) test: testEq (F) line: 55 rtc_test.cxx
    assertion failed
    - Expression: RtcTime_GetDayOfWeek(TimeC[i])==RtcTime_GetDayOfWeek(TimeC[i+1])
i=49

1 个答案:

答案 0 :(得分:2)

你可以这样做,当CppUnit断言时会打印一条消息。

for (int i = 0; i < 50; ++i)
{
    std::stringstream oss;
    oss << "testing RtcTime_GetDayOfWeek(TimeC[i]) where i=" << i << std::endl;
    CPPUNIT_ASSERT_MESSAGE(oss.str(),
              RtcTime_GetDayOfWeek(TimeC[i])==RtcTime_GetDayOfWeek(TimeC[i+1]));
}