У меня есть консольное приложение на C++ (VS 2013), и я хочу его протестировать (используя Google Test).VC++ VS 2013, как использовать (тестовые) классы из другого проекта?
Я создал отдельный проект и добавил GTEST включают пути и т.п. (для exanple с помощью этого учебника http://www.bogotobogo.com/cplusplus/google_unit_test_gtest.php) и простые тесты, как это произведение тонкой:
TEST(MyTests, myTest1)
{
EXPECT_EQ(2+2, 4);
}
Но как использовать классы из основного проекта? Если я просто добавлю проект dir, чтобы включить пути, то я могу использовать только код «только для заголовка», но для классов с реализацией в .cpp
я получаю ошибку unresolved external symbol
.
Есть ли лучший способ, чем перемещение всех классов в библиотеку, чтобы проверить это?
_ «Есть ли лучший способ, чем перемещение всех классов в библиотеку» _ Нет, вам нужно создать библиотеку для тестируемых классов. –
Включите необходимые исходные файлы в тестовый проект. При желании переместите файлы тестовых проектов в ту же папку, где протестированы файлы проекта (так что включение/исключение файлов было бы проще). Это отлично подходит для небольших проектов, но быстро станет беспорядком в большом многопроектном решении. – Drop
И вместо того, чтобы «переместить все классы в библиотеку», подумайте об этом как «перемещение« главной »функции в исполняемый проект». Все станет легче. ;) – Drop