在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
简单来说,单元测试就是局部测试,即是对项目中的某个静态类测试、静态方法测试、类的实例化测试以及类的方法测试。当您有一个具体的项目时您可以通过运行查看结果的方式进行测试,但当您只有一个类而没有完整的项目时便会很麻烦,单元测试则可以解决这种问题。单元测试有两种方法,一个是NUnit,另一个是微软在VS提供的单元测试,我个人觉得用VS内置的单元测试比较简单,因为使用Nunit测试的话需要下载两个文件,并且用Nunit测试的话需要自己手动输入测试类,用VS内置的测试则会自动生成。还有用VS内置的测试时,测试所用的类和方法有中文提示(用Nunit的话没有,我记得是这样),不过我看网上其他人的说法是VS内置的单元测试会相对复杂但更全面。我是在网上结合多个资料学习和总结的,会比较基础,不要嫌多(只是我比较啰嗦而已),希望对看到的您有些许帮助,这里用两种方法对简单的例子进行测试。 一、使用Nunit进行单元测试1、下载Nunit,地址为:http://www.nunit.org/index.php?p=download 2、下载Visual Nunit 2010,地址为:http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099 3、创建项目并测试 1.VS2010中新建一个项目,由于我们只需要对稍后创建的类进行测试,与创什么项目无关,所以您可以创建窗体应用程序或Web应用程序的项目等,这里我创的是控制台应用程序,为了方便查看,我把项目名称取为:使用Nunit进行单元测试 2.在解决方案资源管理器中的引用上右键,选择添加引用,找到并添加步骤1中下载的Nunit中的nunit.framework.dll文件(默认安装时路径为:C:\Program Files \NUnit 2.6\bin\framework\nunit.framewor.dll)。 3.创建一个普通的类,后面我们将会对该类进行测试。右键解决方案资源管理器中的项目名称->添加->类,将类名改为SimpleClass,代码如下: using System; namespace 使用Nunit进行单元测试 4.普通类编写好后,我们现在再创建一个测试类。右键解决方案资源管理器中的项目名称->添加->类,将类名改为TestClass,代码如下: using System; namespace 使用Nunit进行单元测试 5.快捷键Ctrl+F5运行项目(网上的资料写的是生成项目,但这么做的话如果您测试过一个类之后又新建了一个类要进行测试,您会发现找在Visual Nunit中找不到您新创建的类,如果这里您看不懂,不过做完项目后您就会明白)。选择视图->其他窗口->Visual Nunit(我查找资料时别人的资料说Ctrl+F7是快捷键,不过我试了没效。如果在其他窗口中找不到Visual Nunit则将VS关闭后重新打开),在Project、Namespace、Fixture中选择对应项(当您在前文中像我所说的创建第二个测试类之后只是生成项目而没有使用Ctrl+F5运行项目,您会发现您在Fixture中找不到您新创建的测试类),最后点击Run按钮。 二、使用vs进行单元测试1、同前面提到的用Nunit测试一样需要先创建项目,这里我同样创建的是控制台应用程序,并命名项目为:使用VS进行单元测试。 2、创建一个普通类,为了方便需要学习两种方法的朋友可以对比测试时的不同,我将创建和上文使用Nunit一样的类,即类名一样为:SimpleClass,代码编写也同上文一样,好吧,我复制就好: using System; namespace 使用VS进行单元测试 3、编写完SimpleClass类之后,在页面上直接右键->创建单元测试,接着在弹出的对话框中选择您需要测试的类或方法,这里我只需要对步骤2中的除法运算的方法进行测试,所以在对话框中勾选Division方法,然后点击确定后会再弹出对话框,该对话框需要填写的是测试项目(类似于使用Nunit测试时创建的测试类TestClass,使用VS测试称为测试项目)的名称,还是为了对比,我将名称改为TestClass,点击创建,在解决方案资源管理器中可以看到生成了一个解决方案和一个文件夹,并且会自动跳到SimpleClassTest.cs的代码编写页面,在这个页面中需要编写和重点注意的方法是最下面的DivisionTest()方法,您需要做的是修改其中num1、num2和expected的值(我设置为与使用Nunit测试一样的值)并且将代码“Assert.Inconclusive("验证此测试方法的正确性。")”注释或删掉,整理后DivisionTest()方法代码如下: /// <summary> 4、编写完上一步骤的代码后,在菜单栏中选择测试->运行->当前上下文中的测试,该例中结果为通过,若要不通过的例子只需将DivisionTest()方法中的变量expected的值由2改为其他数值即可。
以上就是单元测试的两种方法,如果有错误或不足的地方还请指出,当然有好的地方也稍微可以夸我一下哟~ |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论