不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
使用VS2008对类成员进行单元测试
编辑:dnawo 日期:2009-02-20
在VS2008中,我们可以对类[1]的属性和方法创建单元测试[2]以验证代码的正确性,测试过程不复杂,我们用实例来说明。
假如有一个类Own,我们期望对其Join方法进行单元测试以验证代码的正确性,类代码如下:
OK,在Join方法体上点击鼠标右键,选择"创建单元测试...",将弹出创建单元测试对话框,直接点击确定按钮后VS2008将自动创建好单元测试类OwnTest(有删改):
可以看到,单元测试类OwnTest的类名和其方法都和原先的Own类非常相像。我们稍做下修改,设置下传入的参数值,并设置一个期望的返回值:
在JoinTest方法体上点击右键,选择"运行测试",过一会在测试结果窗口中我们即可看到测试的结果。
注意,测试类必须TestClass标记,所有测试方法必须有TestMethod标记!此外,还有4个标记也比较常用:ClassInitialize、ClassCleanup、TestInitialize和TestCleanup,它们所标识的方法分别是在运行类中的第一个测试前先运行、运行完类中的所有测试后再运行、运行每个测试前先运行和运行完每个测试后运行。下边再来看下完整的OwnTest类:
[1]aspx.cs代码页中的类成员不可进行单元测试。
[2]单元测试:使用单元测试可以创建用 C++、Visual C# 或 Visual Basic 编写的、演练源代码的编程测试。单元测试可调用类的方法,传递合适的参数,并验证返回值是否为所期望的值。
假如有一个类Own,我们期望对其Join方法进行单元测试以验证代码的正确性,类代码如下:
复制内容到剪贴板
程序代码

public class Own
{
public string Join(string a,string b)
{
return a + b;
}
}
{
public string Join(string a,string b)
{
return a + b;
}
}
OK,在Join方法体上点击鼠标右键,选择"创建单元测试...",将弹出创建单元测试对话框,直接点击确定按钮后VS2008将自动创建好单元测试类OwnTest(有删改):
复制内容到剪贴板
程序代码

[TestClass()]
public class OwnTest
{
/// <summary>
///Join 的测试
///</summary>
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("%PathToWebRoot%\\net", "/")]
[UrlToTest("http://localhost/")]
public void JoinTest()
{
Own_Accessor target = new Own_Accessor(); // TODO: 初始化为适当的值
string a = string.Empty; // TODO: 初始化为适当的值
string b = string.Empty; // TODO: 初始化为适当的值
string expected = string.Empty; // TODO: 初始化为适当的值
string actual;
actual = target.Join(a, b);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("验证此测试方法的正确性。");
}
}
public class OwnTest
{
/// <summary>
///Join 的测试
///</summary>
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("%PathToWebRoot%\\net", "/")]
[UrlToTest("http://localhost/")]
public void JoinTest()
{
Own_Accessor target = new Own_Accessor(); // TODO: 初始化为适当的值
string a = string.Empty; // TODO: 初始化为适当的值
string b = string.Empty; // TODO: 初始化为适当的值
string expected = string.Empty; // TODO: 初始化为适当的值
string actual;
actual = target.Join(a, b);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("验证此测试方法的正确性。");
}
}
可以看到,单元测试类OwnTest的类名和其方法都和原先的Own类非常相像。我们稍做下修改,设置下传入的参数值,并设置一个期望的返回值:
复制内容到剪贴板
程序代码

[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("%PathToWebRoot%\\net", "/")]
[UrlToTest("http://localhost/")]
public void JoinTest()
{
Own_Accessor target = new Own_Accessor();
string a = "mzwu"; // Join方法参数,这边设置一个初始值
string b = ".com"; // Join方法参数,这边设置一个初始值
string expected = "mzwu.com"; // 期望方法的返回值
string actual;
actual = target.Join(a, b);
Assert.AreEqual(expected, actual);//判断方法返回的值是否为我们期望的值
//Assert.Inconclusive("验证此测试方法的正确性。");
}
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("%PathToWebRoot%\\net", "/")]
[UrlToTest("http://localhost/")]
public void JoinTest()
{
Own_Accessor target = new Own_Accessor();
string a = "mzwu"; // Join方法参数,这边设置一个初始值
string b = ".com"; // Join方法参数,这边设置一个初始值
string expected = "mzwu.com"; // 期望方法的返回值
string actual;
actual = target.Join(a, b);
Assert.AreEqual(expected, actual);//判断方法返回的值是否为我们期望的值
//Assert.Inconclusive("验证此测试方法的正确性。");
}
在JoinTest方法体上点击右键,选择"运行测试",过一会在测试结果窗口中我们即可看到测试的结果。
注意,测试类必须TestClass标记,所有测试方法必须有TestMethod标记!此外,还有4个标记也比较常用:ClassInitialize、ClassCleanup、TestInitialize和TestCleanup,它们所标识的方法分别是在运行类中的第一个测试前先运行、运行完类中的所有测试后再运行、运行每个测试前先运行和运行完每个测试后运行。下边再来看下完整的OwnTest类:
复制内容到剪贴板
程序代码

[TestClass()]
public class OwnTest
{
private TestContext testContextInstance;
/// <summary>
///获取或设置测试上下文,上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region 附加测试属性
//
//编写测试时,还可使用以下属性:
//
//使用 ClassInitialize 在运行类中的第一个测试前先运行代码
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
}
//使用 ClassCleanup 在运行完类中的所有测试后再运行代码
[ClassCleanup()]
public static void MyClassCleanup()
{
}
//使用 TestInitialize 在运行每个测试前先运行代码
[TestInitialize()]
public void MyTestInitialize()
{
}
//使用 TestCleanup 在运行完每个测试后运行代码
[TestCleanup()]
public void MyTestCleanup()
{
}
#endregion
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("%PathToWebRoot%\\net", "/")]
[UrlToTest("http://localhost/")]
public void JoinTest()
{
Own_Accessor target = new Own_Accessor();
string a = "mzwu"; // Join方法参数,这边设置一个初始值
string b = ".com"; // Join方法参数,这边设置一个初始值
string expected = "mzwu.com"; // 期望方法的返回值
string actual;
actual = target.Join(a, b);
Assert.AreEqual(expected, actual);//判断方法返回的值是否为我们期望的值
//Assert.Inconclusive("验证此测试方法的正确性。");
}
}
public class OwnTest
{
private TestContext testContextInstance;
/// <summary>
///获取或设置测试上下文,上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region 附加测试属性
//
//编写测试时,还可使用以下属性:
//
//使用 ClassInitialize 在运行类中的第一个测试前先运行代码
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
}
//使用 ClassCleanup 在运行完类中的所有测试后再运行代码
[ClassCleanup()]
public static void MyClassCleanup()
{
}
//使用 TestInitialize 在运行每个测试前先运行代码
[TestInitialize()]
public void MyTestInitialize()
{
}
//使用 TestCleanup 在运行完每个测试后运行代码
[TestCleanup()]
public void MyTestCleanup()
{
}
#endregion
[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("%PathToWebRoot%\\net", "/")]
[UrlToTest("http://localhost/")]
public void JoinTest()
{
Own_Accessor target = new Own_Accessor();
string a = "mzwu"; // Join方法参数,这边设置一个初始值
string b = ".com"; // Join方法参数,这边设置一个初始值
string expected = "mzwu.com"; // 期望方法的返回值
string actual;
actual = target.Join(a, b);
Assert.AreEqual(expected, actual);//判断方法返回的值是否为我们期望的值
//Assert.Inconclusive("验证此测试方法的正确性。");
}
}
[1]aspx.cs代码页中的类成员不可进行单元测试。
[2]单元测试:使用单元测试可以创建用 C++、Visual C# 或 Visual Basic 编写的、演练源代码的编程测试。单元测试可调用类的方法,传递合适的参数,并验证返回值是否为所期望的值。
评论: 0 | 引用: 0 | 查看次数: 5508
发表评论
请登录后再发表评论!