白盒测试实例之八——构建自己的单元测试框架(上)

发表于:2009-2-25 18:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:胡添发    来源:CSDNBlog

关键字:单元测试白盒测试

  在上一讲“单元测试的尝试”里我们遇到了几个问题:

  1、代码重复的问题太多

  2、测试结果需要人工去检查

  3、对测试的总体信息也无从得知

  本讲将构建一个简单的单元测试框架来解决以上的问题:

  1、代码重复的问题太多

  这个问题很容易解决,只需要把判断预期结果和实际结果的逻辑提取到某个函数中即可。从整个代码来看,有两种类型的结果的函数:

  (1)返回布尔型

  (2)返回整数

  因此,需要两个类型的判断预期结果和实际结果是否相符的函数:

  1. /*

  2. * 判断是否取值为真

  3. */

  4. void assertTrue(char *msg, bool actual)

  5. {

  6. if(actual)

  7. {

  8. printf(".");

  9. }

  10. else

  11. {

  12. printf("F");

  13. }

  14. }

  15.

  16. /*

  17. * 判断预期结果和实际结果是否相符

  18. */

  19. void assertEquals(char *msg, int expect, int actual)

  20. {

  21. if(expect == actual)

  22. {

  23. printf(".");

  24. }

  25. else

  26. {

  27. printf("F");

  28. }

  29. }

  小知识:XUnit系列的框架的习惯使用assert*的命名来定义判断函数,对于通过的测试习惯打印一个“.”号,而对于失败的测试习惯打印一个“F”。

  2、测试结果需要人工去检查

  对于测试结果不要使用printf方式打印被测试函数的返回结果值就可以避免这个问题。

  3、对测试的总体信息也无从得知

  除了问题1的解决办法里使用“.”表示测试通过和“F”表示测试失败可以提高对测试结果的信息的直观性之外,做单元测试的人还希望能够得到以下的信息:

  (1)执行的测试用例总数、通过的数量和失败的数量

  (2)测试执行的时间

  (3)如果测试用例执行失败了,希望知道是哪个测试用例失败,从而去分析失败的原因。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号