C语言之单元测试

在ITOO高校云平台项目实践中,我们模板的模块因为在调别人的接口时出现了问题,为了弄明白是不是接口出了问题,就必须学会单元测试。

 

WHAT?

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

 

WHY?

为什么要编写单元测试?原因是单元测试有不少的优点,能够给我们的工作带来很大的帮助。单元测试的优点1.帮助开发人员编写代码,提升质量、减少bug。如果大家分析一下我们bug原因的构成,我想有会有一部分bug的原因是开发人员在编写工作代码的时候没有考虑到某些case或者边际条件。造成这种问题的原因很多,其中很重要的一个原因是我们对工作代码所要完成的功能思考不足,而编写单元测试,特别是先写单元测试再写工作代码就可以帮助开发人员思考编写的代码到底要实现哪些功能。例如实现一个简单的用户注册功能的业务类方法,用单元测试再写工作代码的方式来工作的话开发人员就会先考虑各种场景相关,例如正常注册、用户名重复、没有满足必要的填写内容......等等,之后就会编写相关的测试用例

 

HOW?

工具:

单元测试的工具可以用NUnit,下载地址:http://www.nunit.org/index.php?p=download

选择后缀名是.msi的文件下载即可。

 

下载之后双击程序根据提示进行安装,需要清楚自己的安装路径,后面需要用到。提示安装成功后,大家可以在所有程序中看到这个图标,点击红框中的图标打开这个软件,软件是具体使用和操作步骤在这里不做赘述,大家有兴趣可以自己学习。

 

配置:

打开VS,点击工具-自定义

 

点击菜单命令-上下文菜单,选择编辑器上下文菜单|代码窗口

 

将"创建单元测试"移动到“运行测试”菜单下面。

重启VS生效。

 

引用NUnit

在这里以一个详细的小例子给大家作为展示。

1、打开VS,新建一个测试项目

 

2、在新建的项目中添加引用

 

3、引用中浏览,根据安装NUnit中的路径,找到nunit.framework.dll进行引用,过程及效果如下图。

 

编写一段小例子:

在新建的类中编写以下代码:

 

[plain] view plain copy
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using System.Threading.Tasks;  
  6. using NUnit.Framework;            //添加对要测试代码的引用  
  7.   
  8. namespace MyFirstTest  
  9. {  
  10.     /// <summary>  
  11.     /// 这是我第一个单元测试  
  12.     /// </summary>  
  13.     [TestFixture]             //测试夹具,表明这个类包含测试代码  
  14.     public class Class1  
  15.     {  
  16.           
  17.         public int Add(int m, int n)  
  18.         {  
  19.             return m + n;  
  20.   
  21.         }  
  22.     }  
  23. }  


为了测试Add这个方法通不通,我们进行单元测试。

 

 

对着类名点击右键,出现灰色“创建单元测试”字样说明配置成功。

 

解决方案中右键-添加-新建项目-单元测试项目

 

效果图如下:

 

右键单元测试项目-添加-单元测试

 

返回非测试项目-类名,点击右键-创建单元测试。

 

选择自己要测试的方法,生成效果图如下。

 

在生成的代码中设置断点,在方法名处右击调试测试,查看此方法是否能通。

 

结束

到此单元测试完成,原理就是这样的,比较简单。在ITOO高校云平台中MVC框架分为客户端和服务端,客户端调用服务端的接口方法。单元测试能够很好地对其通不通进行测试。值得注意的一点是,在项目中大多数遇到配置文件,那么这时候就需要在单元测试项目下添加配置文件,将非测试项目下的配置文件的内容复制到此配置文件下,保证能够调用其中的服务,不会出错。

posted @ 2017-12-04 14:11  wwfy  阅读(720)  评论(0编辑  收藏  举报