Разбираюсь с тестовой платформой Google. Я надеюсь, что, возможно, эта платформа Gtest поможет моему текущему проекту.
Итак, я не видел никакого руководства от команды Gtest, которое объясняло бы, как создать новый проект и скомпилировать проект, включая библиотеки «gmock / gmork» и «gtest / gtest.h».
Я скачал проект Gtest из репо: google / googletest
Сделайте несколько шагов, чтобы иметь возможность использовать Gtest framework:
Платформа Intall gtest:
$ sudo apt-get install libgtest-dev #gtest
$ sudo apt-get install google-mock #gmock
Затем установите Cmake:
$ sudo apt-get install cmake
и построим 2 проекта (gtest и gmock)
$ cd / usr / src / gtest
$ sudo cmake CMakeLists.txt
$ cd / usr / src / gmock
$ sudo cmake CMakeLists.txt
$ sudo make
Наконец, скопируйте все файлы * .a в / usr / lib
$ cp * .a / usr / lib
Состоит из: libgtest.a, libgtest_main.a, libgmock.a, libgmock_main.a
Я создал новый проект через Eclipse C в Ubuntu 14.04 LTS. Когда я включил gtest.h в свой проект, программа была успешно собрана и хорошо работала.
g++ -o "myGtest" ./myGtest.o ./src_code.o -lgtest -lpthread
но, если было добавлено больше gmock.h, программа не была построена. Компилятор выдал слишком много ошибок
g++ -o "myGtest" ./myGtest.o ./src_code.o -lgtest -lgmock -lpthread
Пожалуйста, помогите мне решить эту проблему.
Кстати, у меня есть еще один вопрос:
Предположим, что у меня есть простой модуль C src_code.c, например:
Я тестирую функцию, в функции вызывает тест, я хотел бы перенаправить программу, чтобы она не выполняла этот тест, и она перейдет к моему самоопределенному тесту, например, в myGtest.cpp я пишу:
int test(int a) {
printf("overridden successful !\n");
return a;
}
Этот метод является имитацией, заглушкой или фиктивной функцией.
Пожалуйста, дайте мне подробную информацию, КАК я могу имитировать внутреннюю функцию в тестируемом модуле через Gtest framework? Пожалуйста, дайте мне пример.
Я пытался найти решение в предыдущем посте на этом сайте.
Но я не понял своего ответа.