工作之初,其实对单元测试根本就没啥概念,或者说根本不会去建立一个做单元测试的项目来对写的方法就行测试。虽然在文档上,或者项目报价上都会写有这个过程。其实也确实是有的,但基本都是直接执行,单步调试代码或者用日志看看最后的效果是不是需要的。而真正去做单元测试,去了解单元测试中有哪些可用的方法,好像没有。
于是工作至于,找了结合最近项目中的操作,找了相关资料做参考,准备写这个东东,留作自己的总结也行,为他人奉献也罢!
不废话了,现在开发我用vs2013的多,所以主要将的也是针对vs3013的情况。现在做在13中做mvc的开发是可以直接勾选建立单元测试项目的,如果不是mvc 的就需要自己手动建立一个(具体怎么创建我就不说了,不会的···去问度娘吧)。这里推荐一个插件“Unit Test Generator”。具体可在vs2013的菜单【工具】中点击【扩展和更新】,在右上角输入Unit Test Generator查找。
创建方法也很简单,在需要进行单元测试的方法上右击选择【Generate Unit Test】单击就行。
单击后效果
需要你配置一个名称的规则,配置好后点击ok即可生成测试方法。
工具就说到这里了,但是具体的测试类,方法有哪些呢?这个才是完成单元测试的关键啊!
单元测试的类都在Microsoft.VisualStudio.TestTools.UnitTesting命名控件中,主要的类有Assert类、CollectionAssert类和StringAssert类。下面给出Assert类的静态方法,其他两个类我给出链接(在最后面)。
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Text;
using System.Collections.Generic;
namespace Temp_Test
{
/**//// <summary>
///这是 TempDll.TempDll 的测试类,旨在
///包含所有 TempDll.TempDll 单元测试
///</summary>
[TestClass()]
public class TempDllTest
{
private TestContext testContextInstance;
/**//// <summary>
///获取或设置测试上下文,上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
/**//// <summary>
///测试方法入口处
///</summary>
[TestMethod()]
public void Test()
{
System.IO.FileInfo file = null;
System.IO.FileInfo file1 = file;
System.IO.DirectoryInfo dir = null;
string tempTrue = "T";
string tempFalse = "F";
Assert.AreEqual(tempTrue, tempFalse);//两个对想不相同,测试失败
Assert.AreNotSame(file1, tempTrue);//两个引入的对象是同一个,测试失败"
Assert.AreSame(file1, file);//两个引入的对象是不相同的
Assert.Fail();//不管是什么,直接宣布测试失败
Assert.Inconclusive();//同Fail差不多,但不是失败,只是测试不能通过
Assert.IsFalse(true);//如果是真,表示测试失败
Assert.IsTrue(false);//如果为假,请示测试失败
Assert.IsInstanceOfType(true,tempTrue.GetType());//类型不相同,测试失败
Assert.IsNull(tempFalse); //不是空所以测试失败
}
}
}
Assert类、 CollectionAssert类和StringAssert类的详细介绍可分别参加下列链接,里面有非常具体的介绍。
Assert类详细介绍 ; CollectionAssert类详细介绍 ; StringAssert类详细介绍
ps:本文参考网页有:http://www.w2bc.com/Article/11186
http://www.studyofnet.com/news/486.html