我可以使用GTest测试单个简单的功能吗?

时间:2013-04-24 19:30:24

标签: c++ unit-testing googletest

我正在尝试熟悉gtest,所以我想测试一个这样的函数:

int fun(int x=6){
return x;
}

我正在编写这样的代码:

#include "gtest/gtest.h"

#include "iostream"

int fun(int x=6){
return x;
}

TEST(FunTest, defaultTest) {
   EXPECT_EQ(6, fun());
}

int main(int argc, char **argv) {
   ::testing::InitGoogleTest(&argc, argv);
   return RUN_ALL_TESTS();
}

但是我得到了大约一百万个错误。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

至少,

#include "iostream"

应该是

#include <iostream>

当您运行Google测试时,您需要确保gtest lib正确链接。 引自Google test documentation

  

建立新的测试项目

     

要使用Google Test编写测试程序,您需要将Google Test编译到库中并将测试与其链接。我们为一些流行的构建系统提供构建文件:msvc / for Visual Studio,xcode / for Mac Xcode,make / for GNU make,codegear / for Borland C ++ Builder,autotools脚本(不建议使用)和CMakeLists.txt for CMake(推荐) )在Google Test根目录中。如果您的构建系统不在此列表中,您可以查看make / Makefile以了解如何编译Google Test(基本上您要在头文件搜索中使用GTEST_ROOT和GTEST_ROOT / include编译src / gtest-all.cc路径,其中GTEST_ROOT是Google Test根目录。)

     

一旦您能够编译Google Test库,您就应该为测试程序创建项目或构建目标。确保在头搜索路径中包含GTEST_ROOT / include,以便编译器在编译测试时可以找到“gtest / gtest.h”。设置您的测试项目以链接到Google Test库(例如,在Visual Studio中,这是通过添加对gtest.vcproj的依赖来完成的。)