使用boost c ++单元测试套件测试非致命错误消息

时间:2017-08-30 17:26:46

标签: c++ unit-testing boost

我有一个函数在遇到某种情况时会向stdout输出错误信息。

if(!condition)
    printf("ERROR: Condition fail!");

此函数的单元测试是拾取“ERROR”关键字,当所有断言都通过时,boost单元测试套件认为它是执行中的错误并显示它。有没有办法为给定的单元测试指定预期的错误消息或预期的错误字符串?

1 个答案:

答案 0 :(得分:1)

  

此功能的单元测试正在拾取“ERROR”关键字

不是。

  

当所有断言都通过时,boost单元测试套件认为它是执行中的错误并显示它

完全没有。单元测试不知道您的测试打印到控制台的事实。

但是,您的测试包含一行代码:

printf("ERROR: Condition fail!");

该行立即将以下文本打印到标准输出设备:

ERROR: Condition fail!

这是您看到文字的唯一原因。如果您检查报告或日志,您会发现(除非断言失败)测试通过。