白盒测试实例--9构建自己的单元测试框架2(完整代码)
来源:互联网 发布:南京哪里有mac专柜 编辑:程序博客网 时间:2024/05/17 02:06
原创文章,版权归 胡添发(hutianfa@163.com)所有,转载请注明出处:
http://blog.csdn.net/aidisheng/archive/2008/09/06/2892744.aspx
完整的源代码如下:
1、UnitTest.h
- /*
- * Copyright (c) 2008, 胡添发(hutianfa@163.com)
- *
- * 简单的单元测试框架
- *
- */
- #include<stdio.h>
- #include<string.h>
- #include<time.h>
- #include<stdlib.h>
- /*
- * VC中没有sleep函数,自己写一个
- * wait单位是毫秒
- */
- extern void sleep(clock_t wait);
- /*
- * 判断是否取值为真
- */
- void assertTrue(char *msg, bool actual);
- /*
- * 判断预期结果和实际结果是否相符
- */
- void assertEquals(char *msg, int expect, int actual);
- /*
- * 初始化测试,开始计时
- */
- void init();
- /*
- * 结束测试,结束计时,打印报告
- */
- void end();
2、UnitTest.cpp
- /*
- * Copyright (c) 2008, 胡添发(hutianfa@163.com)
- *
- * 简单的单元测试框架
- *
- */
- #include "UnitTest.h"
- /*
- * VC中没有sleep函数,自己写一个
- * wait单位是毫秒
- */
- void sleep(clock_t wait)
- {
- clock_t goal;
- goal = wait + clock();
- while( goal > clock() )
- {
- ;
- }
- }
- /*
- * 存放测试信息和错误信息的全局变量
- */
- char *errors[100] = {""};
- int errorCount = 0;
- int testCount=0;
- time_t startTime, endTime;
- /*
- * 添加错误信息
- */
- void addError(char *msg)
- {
- char error[100] = "Test '";
- strcat(error, msg);
- strcat(error, "' is failed!");
- errors[errorCount] = new char[100];
- strcpy(errors[errorCount], error);
- errorCount ++;
- }
- /*
- * 添加错误信息,带预期结果与实际结果参数
- */
- void addError(char *msg, int expect, int actual)
- {
- char error[100] = "Test '";
- char num[10];
- strcat(error, msg);
- strcat(error, "' is failed!");
- strcat(error, " Expected: ");
- strcat(error, itoa(expect, num, 10));
- strcat(error, " , actual: ");
- strcat(error, itoa(actual, num, 10));
- errors[errorCount] = new char[100];
- strcpy(errors[errorCount], error);
- errorCount ++;
- }
- /*
- * 判断是否取值为真
- */
- void assertTrue(char *msg, bool actual)
- {
- sleep(10);
- testCount++;
- if(actual)
- {
- printf(".");
- }
- else
- {
- printf("F");
- addError(msg);
- }
- }
- /*
- * 判断预期结果和实际结果是否相符
- */
- void assertEquals(char *msg, int expect, int actual)
- {
- sleep(10);
- testCount++;
- if(expect == actual)
- {
- printf(".");
- }
- else
- {
- printf("F");
- addError(msg, expect, actual);
- }
- }
- /*
- * 测试报告
- */
- void testReport()
- {
- printf("/n/nTotal run Tests:"); //测试概要信息
- printf("%d", testCount);
- printf(", passed:%d", testCount-errorCount);
- printf(", failed:%d/n", errorCount);
- printf("Test escaped time: %6.3f seconds/n", (double)(endTime-startTime)/1000.0);
- if(errorCount>0) //测试失败的详细信息
- {
- printf("/n**************** Failed Test's Detail ****************/n/n");
- for(int i=0; i<errorCount; i++)
- {
- printf(" %d: ", i+1);
- printf(errors[i]);
- printf("/n");
- }
- printf("/n**************** End of Failed Detail ****************/n/n");
- }
- else //所有测试都通过
- {
- printf("/n****** All Tests had Passed! ******/n/n");
- }
- }
- /*
- * 初始化测试,开始计时
- */
- void init()
- {
- printf("/n****** Test start ******/n");
- startTime = clock();
- }
- /*
- * 结束测试,结束计时,打印报告
- */
- void end()
- {
- endTime = clock();
- testReport();
- }
3、实际测试结果截图:
- 白盒测试实例--9构建自己的单元测试框架2(完整代码)
- 白盒测试实例--9构建自己的单元测试框架2(完整代码)
- 白盒测试实例--8构建自己的单元测试框架1
- Android单元测试框架源码分析(三)构建自己的单元测试框架
- 白盒测试实例--6单元测试的步骤
- 白盒测试实例--7单元测试的尝试
- 白盒测试实例——单元测试的步骤
- 单元测试-使用nmock测试你的.NET代码(2)
- 软件测试_JUnit+Ant构建自动的单元测试(2)
- 使用ASUnit单元测试框架测试ActionScript代码
- python的测试框架(一) -- 单元测试框架
- ITF Demo代码(用VBScript构建的接口测试框架)
- SpringBoot+MyBatis框架的项目单元测试+集成测试(上)
- 2、构建有效的单元测试
- webpack+vue+vueRouter模块化构建完整项目实例超详细步骤(代码、入门篇)
- VS2015 使用微软自带的单元测试框架测试本地C++代码的注意事项
- 单元测试-使用nmock测试你的.NET代码(1)
- 单元测试-使用nmock测试你的.NET代码(3)
- 动态刷新机制的业务对象
- 电磁式计算机
- 乔治·斯蒂比兹 ----计算机远程遥控第一人
- 晶体管革命
- 计算机发展
- 白盒测试实例--9构建自己的单元测试框架2(完整代码)
- python学习笔记,杂记
- SOA参考资料
- 计算机历史
- #ifndef、#def、#endif等宏的含义
- 汇编实现c语言标准库函数
- 今年大1
- 白盒测试实例--10集成测试的概念
- 收集应聘Java笔试时可能出现问题及其答案