Я только начинаю с TDD, и мне любопытно, что подходы других предпринимают для проведения своих тестов. Для справки, я использую структуру тестирования Google, но я считаю, что этот вопрос применим к большинству других систем тестирования и к языкам, отличным от C/С++.
Мой общий подход до сих пор заключался в том, чтобы сделать одну из трех вещей:
-
Запишите большую часть приложения в статической библиотеке, затем создайте два исполняемых файла. Один исполняемый файл является самим приложением, в то время как другой является тестовым бегуном со всеми тестами. Обе ссылки на статическую библиотеку.
-
Внедрить тестовый код непосредственно в само приложение и включить или отключить код тестирования с использованием флагов компилятора. Это, наверное, лучший подход, который я использовал до сих пор, но немного забивает код.
-
Внедрить тестовый код непосредственно в само приложение и, если определенные ключи командной строки запускают сами приложение или запускают тесты, встроенные в приложение.
Ни одно из этих решений особенно элегантно...
Как сделать вы?