Если вы просто хотите написать быстрый простой тест в среде, где вы никогда не использовали Boost. Тестирование раньше - да, использование включенных компонентов. Если вы планируете использовать Boost. Тест на постоянной основе, небольшие затраты времени, необходимые для сборки (если еще не построены), установки и изменения настроек макияжа / проекта, скоро вернутся к вам в виде более короткого времени компиляции. Почему вам нужно заставлять компилятор выполнять одну и ту же работу снова и снова?
Очень легко перейти на автоматическую регистрацию. И вам не нужно беспокоиться о забытых тестах.
В некоторых случаях вы повторно используете один и тот же код на основе шаблона из одного тестового случая (на самом деле мы рекомендуем лучшее решение в этом случае). Теперь, если тест-инструмент сообщает об ошибке в этом повторно используемом коде, у вас могут возникнуть трудности с поиском, если ошибка произошла. Для решения этой проблемы вы можете либо добавить<BOOST_TEST_MESSAGE
>утверждения в шаблонном коде, которые регистрируют текущий тип идентификатора параметров шаблона, либо использовать специальный крюк, расположенный в<unit_test_result.hpp
>, называемый<first_failed_assertion()
>. Если вы установите точку останова прямо на линии, где определена эта функция, вы сможете развернуть стек и увидеть, где произошла ошибка.
Если вы пишете модульный тест для общего многоразового компонента, вам может потребоваться проверить его на набор различных типов параметров шаблона. Скорее всего, вы получите такой код:
template<typename TestType>
void specific_type_test( TestType* = 0 )
{
MyComponent<TestType> c;
}
void my_component_test()
{
specific_type_test( (int*)0 );
specific_type_test( (float*)0 );
specific_type_test( (UDT*)0 );
}
Это именно та ситуация, когда вы будете использовать тестовый шаблон. Это не только упрощает этот вид тестирования блоков, автоматизируя некоторые работы, но и каждый тип аргументов тестируется отдельно под монитором блок-тестирования. В результате, если один из типов приводит к исключению или нефатальной ошибке, вы все равно можете продолжить и получить результаты тестирования с другими типами.