[转] .NET2005下单元测试中Assert类的用法
首先说介绍一下,Assert类所在的命名空间为
Microsoft.VisualStudio.TestTools.UnitTesting 在工程文件中只要引用Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll就可以使用了,
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,"不是空所以测试失败");
}
}
}
Microsoft.VisualStudio.TestTools.UnitTesting 在工程文件中只要引用Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll就可以使用了,
在这里我会举例说明Assert里面的一些主要的静态成员。
1、 AreEqual:方法被重载了N多次,主要功能是判断两个值是否相等;如果两个值不相等,则测试失败。
2、 AreNotEqual:方法被重载了N多次,主要功能是判断两个值是否不相等;如果两个值相等,则测试失败。
3、 AreNotSame:引用的对象是否不相同;如果两个输入内容引用相同的对象,则测试失败.
4、 AreSame:引用的对象是否相同;如果两个输入内容引用不相同的对象,则测试失败.
5、 Fail:断言失败。
6、 Inconclusive:表示无法证明为 true 或 false 的测试结果
7、 IsFalse:指定的条件是否为 false;如果该条件为 true,则测试失败。
8、 IsTrue:指定的条件是否为 true;如果该条件为 false,则测试失败
9、 IsInstanceofType:测试指定的对象是否为所需类型的实例;如果所需的实例不在该对象的继承层次结构中,则测试失败
10、 IsNotInstanceofType: 测试指定的对象是否为所需类型的实例;如果所需的实例在该对象的继承层次结构中,则测试失败
11、 IsNull:测试指定的对象是否为非空
12、 IsNotNull:测试指定的对象是否为非空
具个例子来说明上面所写的。(先创一个测试工程)
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,"不是空所以测试失败");
}
}
}