2017-08-30 48 views
1

我有一個函數在遇到特定條件時向stdout輸出錯誤消息。使用boost C++單元測試套件測試非致命錯誤消息

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

該函數的單元測試拿起「ERROR」的關鍵字,並且在所有斷言通,升壓單元測試套件認爲錯誤在執行並顯示。有沒有辦法指定一個預期的錯誤信息,或給定的單元測試預期的錯誤字符串?

回答

1

該函數的單元測試拿起 「ERROR」 的關鍵字,

它不是。

並且當所有斷言通,升壓單元測試套件認爲錯誤在執行,並將其顯示

不是。單元測試不知道您的測試打印到控制檯的事實。

您的測試,雖然包含了一行代碼:

printf("ERROR: Condition fail!"); 

這行有打印下面的文本到標準輸出設備的立竿見影的效果:

ERROR: Condition fail! 

這是唯一的你看到文字的原因。如果您檢查報告或日誌,您會發現(除非聲明失敗)測試通過。