Google C++ Testing Framework之初识
2010-10-18 19:38
513 查看
开始尝试使用Google C++ Testing Framework,即 googletest。
本项目主页:http://code.google.com/p/googletest/
简介:Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit architecture. Supports automatic test discovery, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, value- and type-parameterized tests, various options for running the tests, and XML test report generation.
本文主要介绍一些入门级别的使用方法,主要包含编译器的配置,与源代码的编译,在最后我们使用googletest来测试一个简单的例子。
开始。
操作系统:WindowsXP 编译器:MS Visual Studio 2008
1. 下载并解压源码包,可看到如下树状结束的代码层,找到 msvc 目录,如下图所示:
2. 打开 VS2008 ,直接打开 msvc 里面的工程文件,即 msvc\gtest.sln 。直接编译即可。
完成以上步骤后,可在 msvc 里生成目录 Debug ,可找到文件 gtestd.lib 。
3. 在VS里面,新建一个项目 —— C++ Win32控制台程序 。编写一个被测程序。
我们使用googletest提供的一个例子来作为测试的目标程序吧。
4. 接着设置项目属性(项目—属性)。需要设置的有 gtest头文件的路径、运行时库 与 gtestd.lib 的路径。
gtest头文件路径:
运行时库:
gtestd.lib 的路径:
至此,运行时所需环境均已配置完毕。继续回到代码。
5. 编写自动化测试代码。
6. 编写主函数。
运行通过,执行结果:
以上就是简单的测试执行过程。
总结。
在这里我们看到,googletest进行C++单元测试入门非常简单。
在下一节,我们将会了解到以上案例的编写及执行,还有EXPECT_TRUE的详细解答。
本项目主页:http://code.google.com/p/googletest/
简介:Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on the xUnit architecture. Supports automatic test discovery, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, value- and type-parameterized tests, various options for running the tests, and XML test report generation.
本文主要介绍一些入门级别的使用方法,主要包含编译器的配置,与源代码的编译,在最后我们使用googletest来测试一个简单的例子。
开始。
操作系统:WindowsXP 编译器:MS Visual Studio 2008
1. 下载并解压源码包,可看到如下树状结束的代码层,找到 msvc 目录,如下图所示:
2. 打开 VS2008 ,直接打开 msvc 里面的工程文件,即 msvc\gtest.sln 。直接编译即可。
完成以上步骤后,可在 msvc 里生成目录 Debug ,可找到文件 gtestd.lib 。
3. 在VS里面,新建一个项目 —— C++ Win32控制台程序 。编写一个被测程序。
我们使用googletest提供的一个例子来作为测试的目标程序吧。
// Returns true iff n is a prime number. bool IsPrime(int n) { // Trivial case 1: small numbers if (n <= 1) return false; // Trivial case 2: even numbers if (n % 2 == 0) return n == 2; // Now, we have that n is odd and n >= 3. // Try to divide n by every odd number i, starting from 3 for (int i = 3; ; i += 2) { // We only have to try i up to the squre root of n if (i > n/i) break; // Now, we have i <= n/i < n. // If n is divisible by i, n is not prime. if (n % i == 0) return false; } // n has no integer factor in the range (1, n), and thus is prime. return true; }
4. 接着设置项目属性(项目—属性)。需要设置的有 gtest头文件的路径、运行时库 与 gtestd.lib 的路径。
gtest头文件路径:
运行时库:
gtestd.lib 的路径:
至此,运行时所需环境均已配置完毕。继续回到代码。
5. 编写自动化测试代码。
//头文件路径已设置完毕,习惯放至代码最前面: #include <gtest/gtest.h> TEST(IsPrimeTest, TrueCondition) { EXPECT_TRUE(IsPrime(2)); EXPECT_TRUE(IsPrime(3)); EXPECT_TRUE(IsPrime(5)); EXPECT_TRUE(IsPrime(7)); EXPECT_TRUE(IsPrime(11)); EXPECT_TRUE(IsPrime(19)); }
6. 编写主函数。
int _tmain(int argc, _TCHAR* argv[]) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
运行通过,执行结果:
以上就是简单的测试执行过程。
总结。
在这里我们看到,googletest进行C++单元测试入门非常简单。
在下一节,我们将会了解到以上案例的编写及执行,还有EXPECT_TRUE的详细解答。
相关文章推荐
- Google C++ Testing Framework 学习笔记
- 使用Google C++ Testing Framework进行单元测试
- Google C++ Testing Framework 简介
- Google C++ Testing Framework AdvancedGuide
- Google C++ Testing Framework Primer
- Google Test(Google C++ Testing Framework)简介
- Google C++ Testing Framework的结果显示样式表
- googletest - Google C++ Testing Framework - Google Project Hosting
- something about Google Test(Google C++ Testing Framework)
- Google C++ Testing Framework简介
- [gtest][001] A quick introduction to the Google C++ Testing Framework
- Google C++ Testing Framework Primer
- Google C++ Testing Framework之参数化
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
- Google Mock启蒙篇 [1] (Google C++ Mocking Framework for Dummies 翻译)
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
- Google C++ Mocking Framework使用简介
- Very Very Simple C++ Testing Framework
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest