2013-11-21 44 views
0

我目前在我的一個軟件項目中使用Boost.Log。有一種情況,我通過使用日誌消息來報告錯誤情況。我想測試是否使用谷歌測試框架正確檢測到這種情況。爲了清楚起見,我想測試消息是否生成。它可能會被過濾器刪除,但這不會導致測試失敗。這可能嗎?任何提示?謝謝!測試是否使用Boost.Log生成日誌消息

回答

1

對於基地是或否的測試,只需使用assert,像這樣:

#include <assert.h>  /* assert */ 

void print_number(int* myInt) { 
    assert (myInt!=NULL); 
    // Boost.Log stuff... 
    // print_number stuff... 
} 

這會給你一個直線上升的消息(取決於編譯/ OS)如果測試失敗。

+0

該解決方案並不像我希望的那樣普遍(例如測試警告),但適用於手頭的案例。感謝您直接設置我,我專注於檢測日誌消息的可能性,我沒有考慮明顯的解決方案!稍後我會接受你的答案,以防沒有人出現更通用的答案。 –

+0

你也可以在'#include '之前用一個簡單的'#define NDEBUG'輕鬆禁用生產代碼(即在你的通用頭文件或makefile /命令行中) –