西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页编程开发其它知识 → 单元测试工具CppUTest怎么用?

单元测试工具CppUTest怎么用?

相关软件相关文章发表评论 来源:西西整理时间:2013/5/16 8:58:59字体大小:A-A+

作者:西西点击:51次评论:1次标签: 单元测试

  • 类型:编程辅助大小:3.3M语言:英文 评分:6.6
  • 标签:
立即下载

最近学习如何进行单元测试,于是研究了一下CppUTest的用法,虽然这工具经常被推荐,但奇怪的是网上资料缺比较少,可能是因为太简单了的原因吧,先记录下来给自己看。

1.下载CppUTest

2.Linux常用安装三板斧

./configure --prefix=目录

make

make check

3.使用

CppUTest上有一个如何开始的说明

先编写一个cpp文件

 1 /*注意,这个头文件必须包含,不然编译就报错,比较坑的是官网并没说要添加这个*/
 2 #include "CppUTest/UtestMacros.h" 
 3 
 4 TEST_GROUP(FirstTestGroup)
 5 {
 6 };
 7 
 8 TEST(FirstTestGroup,FirstTest)
 9 {
10     FAIL("fail me!");
11 }
然后再编写一个cpp文件

 1 /*这几个头文件最好都包含了,反正以后也要用*/
 2 
 3 #include "CppUTest/CommandLineTestRunner.h"
 4 #include "CppUTest/TestPlugin.h"
 5 #include "CppUTest/TestRegistry.h"
 6 #include "CppUTestExt/MockSupportPlugin.h"
 7 
 8 int main(int ac,char** av)
 9 {
10     return CommandLineTestRunner::RunAllTests(ac, av);
11 }
最后再编写一个Makefile文件

 1 CC=gcc

 2 CXX=g++
 3 
 4 #自己定义这个路径
 5 CPPUTEST_HOME=/root/usr/cpputest-3.4
 6 
 7 FLAGS= -c
 8 
 9 CPPFLAGS += -I$(CPPUTEST_HOME)/include
10 
11 CFLAGS += -include $(CPPUTEST_HOME)/include/CppUTest/MemoryLeakDetectorNewMacros.h
12 CXXFLAGS += -include $(CPPUTEST_HOME)/include/CppUTest/MemoryLeakDetectorMallocMacros.h
13 
14 LD_LIBRARIES = -L$(CPPUTEST_HOME)/lib -lCppUTest -lCppUTestExt
15 
16 #自己定义最后程序的名称
17 TARGET=alltests
18 
19 #自己定义有哪些文件
20 OBJECTS=AllTest.o cpputest.o
21 SOURCES=AllTest.cpp cpputest.cpp
22 
23 $(TARGET):$(OBJECTS)
24     $(CXX) $^ $(LD_LIBRARIES) -o $@ 
25 
26 
27 .cpp.o:
28     $(CXX) $(FLAGS) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
29     
30 .c.o:
31     $(CXX) $(FLAGS) $(CPPFLAGS) $(CFLAGS) $< -o $@
32     
33 clean:
34     rm *.o $(TARGET)

然后make通过,就可以直接执行了

最后看到输出“fail me”就哦了。

基本用法的说明

简单的CppUTest分成两个部分

TEST_GROUP(FirstTestGroup) { };

TEST(FirstTestGroup,FirstTest) { }

TEST_GROUP的内部定义自己测试中需要用到的变量和一些自己的函数(变量和函数只有定义在这个里面,属于这一组的测试才能使用这些变量和函数),而且在TEST_GROUP中还可以继承两个CppUTest的函数

void setup(){}//这个函数中对变量进行初始化

void teardown(){}//对一些变量进行销毁

TEST部分中就填入我们想要做的测试用例

CppUTest提供了很多的宏,如CHECK(bool),LONGS_EQUAL(excepted,actual)…等等宏,就行一些检测,而不需要去关心C++语言的类的那些问题,所以CppUTest也可以用于C语言。

目前我能看到的用法就这么多,以后有了新的用法再扩展。

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(1)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)