Microsoft Visual Studio Team System集成了多种功能,这些功能用于创建高质量代码。其中一项功能用于实现单元编码测试。执行单元测试能够实现测试驱动开发,另一项有用的功能是测试私有方法。在本文中,首先从测试驱动开发技术开始讲解,因为这是敏捷开发人员所提倡的重点。
下一篇:VS Team Edition在其它单元中的测试
·测试驱动开发
在编写测试代码之前,需要进行单元测试。为此首先必须创建测试项目,然后才能生成测试。为此创建一个空白Visual Studio解决方案,然后添加C#测试项目。项目默认引用Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集,以及包含单元测试的C#文件。单元测试方法和单元测试类使用[TestMethod]和[TestClass]声明,以通知Visual Studio测试框架:它们是测试的方法和类。代码如下所示:
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
publicclass UnitTests
{
[TestMethod]
publicvoid TestMethod1()
{
// TODO: 添加测试逻辑
}
}
假设正准备开发一个需要测试的计算器类,那么首先按照自定义规则在测试方法中调用计算器方法的代码(名称改为AddTest),代码修改如下:
[TestClass]
publicclass UnitTests
{
[TestMethod]
publicvoid AddTest ()
{
int x =1; int y =2;
int expected =3;
int actual = MyUtils.Calc.Add(x,y);
Assert.AreEqual<int>(expected, actual);
}
}
Assert类有一个方法,用于指定某个条件为“是”或“否”。在这种情况下,需要指定与实际结果相等的预期结果。尝试编译该测试会失败,因为还没有编写Calc类。下面必须编写充足的代码才能通过测试。换言之,需要在同一个解决方案中创建一个类库项目,实现Calc类,并从测试项目中引用该类库项目。创建Calc类之后就可以使用从单元测试生成方法说明的功能。即将鼠标在调用Add方法上悬停片刻,就会出现“Generate Method Stub For Add-in MyUtils.Calc”,如图1所示: