Window&Linux gtest 使用方法-待补充

Google's Framework for writing C++ tests on a variety of platforms(Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian). Based on teh 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.

Linux:

gtest是一个跨平台的C++测试框架,google作品。

它支持自动发现测试,断言集,用户定义的断言,death测试,致命与非致命的失败,类型参数化测试,各类运行测试的选项和XML的测试报告。

(1).下载gtest

http://code.google.com/p/googletest/downloads/list

    笔者下载的是版本1.7.0

http://code.google.com/p/googletest/downloads/detail?name=gtest-1.7.0.zip

(2).安装gtest

**安装过程

     确认lib目录下生成了libgtest.a和libgtest_main.a,这两个库是后续测试程序需要链接的库。(由于笔者对linux熟悉程度没过关,所以全部拷到/usr/lib目录下,也可以编译通过,在熟悉些,定不该如此做。)

(3).测试gtest

     测试foo.h中的一个max函数(求两个数中较大的一个)

     foo.h文件内容如下:

             Window&Linux gtest 使用方法-待补充_第1张图片

**源码

     编写测试程序foo_test.cpp来对foo进行测试:

     foo_test.cpp文件内如下:

            Window&Linux gtest 使用方法-待补充_第2张图片

**源码

     创建一个编译foo_test.cpp的脚本compile.sh,编译命令如下:

            

**编译命令

      需要注意的是,要链接pthread这个库。

      执行结果如下:

            Window&Linux gtest 使用方法-待补充_第3张图片

       上述的成功和失败是和测试程序相关,一一对比就可知道原因。

**测试结果

(4).说明总结

**test

            

       这是要测试的测试用例,后面是执行内容

        foo:测试用例名称

        max:测试名称

这两个参数都只起到提示作用,也可以按照如下方式使用

        foo:类名

        max:方法名

或者(这里用的方式是如此)

        foo:文件名

        max:函数名


EXPECT_EQ(value1, value2);

用例执行成功时,期望value1和value2是相等的,相等才算通过测试,如上例中:

EXPECT_EQ(2, max(2, -1));

max(2, -1)的执行结果值期望是2,如果不等,则用例运行失败。

**main

            

这是main函数,InitGoogleTest会初始化一些环境变量,RUN_ALL_TESTS()会调用所有的TEST(name1, name2);

(6)拓展延伸

更多可获取gtest资料,见官网:http://code.google.com/p/googletest/

你可能感兴趣的:(单元测试,Linux,工具)