В настоящее время я использую Boost.Log в одном из своих программных проектов. Есть один случай, когда я сообщаю об ошибке, используя сообщение журнала. Я хотел бы проверить, правильно ли обнаружено это условие с помощью платформы тестирования Google. Просто чтобы быть ясным, я хочу проверить, сгенерировано ли сообщение. Его можно удалить с помощью фильтра, но это не должно приводить к сбою теста. Это вообще возможно? Любые подсказки? Спасибо!
Проверьте, генерируется ли сообщение журнала с помощью Boost.Log
Ответы (1)
Для базового тестирования «да или нет» просто используйте assert
, что-то вроде этого:
#include <assert.h> /* assert */
void print_number(int* myInt) {
assert (myInt!=NULL);
// Boost.Log stuff...
// print_number stuff...
}
это даст вам прямое сообщение (в зависимости от компилятора/ОС), если тест не пройден.
person
Paul Evans
schedule
21.11.2013
Решение не такое общее, как я надеялся (например, тестирование предупреждений), но работает в данном случае. Спасибо, что просветили меня, я был так сосредоточен на возможности обнаружения этого сообщения в журнале, что не рассматривал очевидное решение! Я приму ваш ответ позже, если никто не появится с более общим.
- person Markus Mayr; 21.11.2013
Вы также можете легко отключить для производственного кода с помощью простого
#define NDEBUG
(то есть в вашем общем заголовке или в make-файле/командной строке) перед #include <assert.h>
- person Paul Evans; 21.11.2013