vs2005 单元测试
由于VS2005中的单元测试比较简单,下面我直接通过一个简单的DEMO来说明它的使用方法。
一.新建一个类库项目[UnitTesting],在默认的class1中,写入一个简单的加法函数。
可以直接测试方法(Add())点击右键,选择弹出的listmenu中选择第二项[创建单元测试相],默认的测试方法已经勾选,此时只需单击"确定"按钮即可;或者在menu中选择test中的新建测试,在弹出添加新建测试窗体中单元测试项目即可。我们可以看一下自动生成的Class1Test类中的原代码,下面我只是把与测试相关的代码贴出来了。
还可以在测试方法中修改参数值和期望值等数据。按照以上的操作就可以实现VS2005中的单元测试了。
最后,我在把单元测试中常用的属性简单的罗列一下。
一.新建一个类库项目[UnitTesting],在默认的class1中,写入一个简单的加法函数。
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4![](/Images/OutliningIndicators/None.gif)
5
namespace UnitTesting
6
{
7
public class Class1
8
{
9
public int Add(int i, int j)
10
{
11
return i + j;
12
}
13
}
14
}
15![](/Images/OutliningIndicators/None.gif)
二.建立测试项。![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
13
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
14
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
15
![](/Images/OutliningIndicators/None.gif)
可以直接测试方法(Add())点击右键,选择弹出的listmenu中选择第二项[创建单元测试相],默认的测试方法已经勾选,此时只需单击"确定"按钮即可;或者在menu中选择test中的新建测试,在弹出添加新建测试窗体中单元测试项目即可。我们可以看一下自动生成的Class1Test类中的原代码,下面我只是把与测试相关的代码贴出来了。
1
/// <summary>
2
///Add (int, int) 的测试
3
///</summary>
4
[TestMethod()]
5
public void AddTest1()
6
{
7
Class1 target = new Class1();
8![](/Images/OutliningIndicators/InBlock.gif)
9
int i = 0; // TODO: 初始化为适当的值
10![](/Images/OutliningIndicators/InBlock.gif)
11
int j = 0; // TODO: 初始化为适当的值
12![](/Images/OutliningIndicators/InBlock.gif)
13
int expected = 0;
14
int actual;
15![](/Images/OutliningIndicators/InBlock.gif)
16
actual = target.Add(i, j);
17![](/Images/OutliningIndicators/InBlock.gif)
18
Assert.AreEqual(expected, actual, "UnitTesting.Class1.Add 未返回所需的值。");
19
Assert.Inconclusive("验证此测试方法的正确性。");
20
}
三。我们在菜单的测试栏中选择窗口的测试管理器,然后选择我们需要测试的方法,再我们勾选方法的那一栏中点击右键“运行选中的测试”这一项,即可。但是显示的结果是没有结论,我们需要把Assert,Inconclusive("");给注释一下,就OK了。![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2
![](/Images/OutliningIndicators/InBlock.gif)
3
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
还可以在测试方法中修改参数值和期望值等数据。按照以上的操作就可以实现VS2005中的单元测试了。
最后,我在把单元测试中常用的属性简单的罗列一下。
属性 | 描述 |
TestClass() |
该属性表示一个测试装置。 |
TestMethod() |
该属性表示一个测试用例。 |
AssemblyInitialize() |
在执行为执行选择的第一个 TestClass() 中的第一个 TestMethod() 之前,执行带有该属性的方法。 |
ClassInitialize() |
带有该属性的方法在执行第一个测试之前调用。 |
TestInitialize() |
带有该属性的方法在执行每个 TestMethod() 之前调用。 |
TestCleanup() |
带有该属性的方法在执行每个 TestMethod() 之后调用。 |
ClassCleanup() |
带有该属性的方法在执行 ALL 测试之后调用。 |
AssemblyCleanup() |
在执行为执行选择的第一个 TestClass() 中的第一个 TestMethod() 之后,执行带有该属性的方法。 |
Description() |
提供关于给定 TestMethod() 的描述。 |
Ignore() |
由于某种原因忽略 TestMethod() 或 TestClass()。 |
ExpectedException() |
当测试特定异常时,如果使用该属性指定的异常不是从实现代码引发,则测试不会失败。 |