Проверьте, генерируется ли сообщение журнала с помощью Boost.Log

В настоящее время я использую Boost.Log в одном из своих программных проектов. Есть один случай, когда я сообщаю об ошибке, используя сообщение журнала. Я хотел бы проверить, правильно ли обнаружено это условие с помощью платформы тестирования Google. Просто чтобы быть ясным, я хочу проверить, сгенерировано ли сообщение. Его можно удалить с помощью фильтра, но это не должно приводить к сбою теста. Это вообще возможно? Любые подсказки? Спасибо!


person Markus Mayr    schedule 21.11.2013    source источник


Ответы (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
comment
Решение не такое общее, как я надеялся (например, тестирование предупреждений), но работает в данном случае. Спасибо, что просветили меня, я был так сосредоточен на возможности обнаружения этого сообщения в журнале, что не рассматривал очевидное решение! Я приму ваш ответ позже, если никто не появится с более общим. - person Markus Mayr; 21.11.2013
comment
Вы также можете легко отключить для производственного кода с помощью простого #define NDEBUG (то есть в вашем общем заголовке или в make-файле/командной строке) перед #include <assert.h> - person Paul Evans; 21.11.2013