格式化BOOST_CHECK_CLOSE的失败输出?

时间:2010-12-03 18:53:58

标签: c++ unit-testing boost

我正在使用boost测试框架为遗留代码添加测试。

一个这样的测试可能是

double expectedPrice = /*...local computation*/
BOOST_CHECK_CLOSE(expectedPrice, object->price, ACCURACY_THRESHOLD);

其中expectedPrice是本地双重计算,并且从被测系统中检索对象。

error in "MyTest": difference{0.21097%} between expectedPrice{4.7300000000000004} and object->price{4.7400000000000002} exceeds 1.0000000000000001e-05%

当然,考虑到所有小数,这有点难以阅读。任何方式让测试输出格式更好/不同,因为我使用裸双打而不是其他类型?

2 个答案:

答案 0 :(得分:0)

你可以尝试:

cout<< setprecision(2)

答案 1 :(得分:0)

这是已知问题。用已知的解决方案虽然我仍然希望在某些方面做到,但实施起来有点困难。与此同时,您将无法使用iostream库生成的任何输出。