Захотелось освоить tdd, решил использовать google c++ testing framework. Как правильно его использовать? Создавать проект, который будет включать .h из тестируемого проекта( тогда возникает проблема с cpp файлами, которые не будут находиться, следовательно не будут находится определения функций), или же писать тесты прямо в тестируемом проекте и делать это с условной компиляцией?
int main()
{
#ifdef UNIT_TEST
return RUN_ALL_TESTS();
#else
run_useful_code();
return 0;
#endif
}
Второй вариант видится мне плохим, так как необходимо разграничивать эти сущности. Какая принята практика при tdd?