Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
https://github.com/google/googletest
git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cmake ..
make
sudo make install
Приведенная выше команда скомпилирует gtest и поместит статическую библиотеку ссылок в каталог /usr/local/lib: zhouhao@ubuntu:/usr/local/lib$ ls libgmock.a libgtest.a pkgconfig python3.6 libgmock_main.a libgtest_main.a python2.7
Как показано выше, четыре файла .a представляют собой библиотеки динамической компоновки gtest. При написании gtest вам нужно только связать эти файлы, чтобы использовать gtest. (Примечание. Если вам нужно создать динамическую библиотеку .so,ссылкаhttps://blog.csdn.net/pbe_sedm/article/details/42240885,https://www.cnblogs.com/ziyunlong/p/6023121.html) Поместите заголовочный файл в каталог /usr/local/include:
sudo cp libgtest*.a /usr/local/lib
sudo cp –a include/gtest /usr/local/include
zhouhao@ubuntu-desktop:~ cd /usr/local/include/ zhouhao@ubuntu-desktop:/usr/local/include ls gmock gtest
Проверьте, прошла ли установка успешно
Вы можете написать простой тестовый код следующим образом:
#include<gtest/gtest.h>
int add(int a,int b){
return a+b;
}
TEST(testCase,test0){
EXPECT_EQ(add(2,3),5);
}
int main(int argc,char **argv){
testing::InitGoogleTest(&argc,argv);
return RUN_ALL_TESTS();
}
g++ test.cc -lgtest -lpthread
./a.out
TEST ДЕЛО написано Вам не нужно писать основную функцию. Команда компиляции: g++ add.cc testAdd.cc -lgtest -lgtest_main -lpthread То есть libgtest_main.a связан с программой.
Утверждение:
ASSERT_TRUE(condition); EXPECT_TRUE(condition); условие верно ASSERT_FALSE(condition); EXPECT_FALSE(condition); условие неверно ASSERT_EQ(expected, actual); EXPECT_EQ(expected, actual); expected == actual ASSERT_NE(val1, val2); EXPECT_NE(val1, val2); val1 != val2 ASSERT_LT(val1, val2); EXPECT_LT(val1, val2); val1 < val2 ASSERT_LE(val1, val2); EXPECT_LE(val1, val2); val1 <= val2 ASSERT_GT(val1, val2); EXPECT_GT(val1, val2); val1 > val2 ASSERT_GE(val1, val2); EXPECT_GE(val1, val2); val1 >= val2 ASSERT_STREQ(expected_str, actual_str); EXPECT_STREQ(expected_str, actual_str); Две строки C имеют одинаковое содержимое ASSERT_STRNE(str1, str2); EXPECT_STRNE(str1, str2); Две строки C имеют разное содержимое ASSERT_STRCASEEQ(expected_str, actual_str); EXPECT_STRCASEEQ(expected_str, actual_str); Две строки C имеют одинаковое чувства, игнорировать регистр ASSERT_STRCASENE(str1, str2); EXPECT_STRCASENE(str1, str2); Две строки C имеют разное чувства, игнорировать регистр
Заголовочный файл: #include <gtest/gtest.h>
int main(mai nint argc, char **argv)
{
printf("Running main() from gtest_main.cc\n");
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Библиотека: -lgtest -lpthread
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.