技术开发 频道

用Visual Studio Team版进行测试驱动开发



【IT168 专稿】

    自由地编写代码,或是不按着标准来写程序可能会更快地完成一个系统,但是这样的系统也会经常给我们带来恶梦。那么这个问题的解决方案就是就是进行适当的代码测试来引导我们的代码走向正轨。测试驱动开发(TDD)将会通过预定义的测试规则简化开发和减少程序中的bug。最初,进行TDD是十分困难的,但当这种技术获得团队的认可的同时,也获得了很多开发工具的支持。在本文中我们将学习如何使用Visual Studio Team版本来进行测试和实现单元测试和web测试。


一、介绍

   
我们可以从MSDN中学习到更多的关于TDD的知识,但如果用一句话来描述TDD,它就是从测试中驱动开发。因此,我们需要首先在写正式的代码之前要写测试代码,然后使用这些测试来确保我们的代码满足需求。例如,假设我们想写一个计算阶乘的方法。首先,我们需要写一个测试确定从方法中返回的值是不是正确。如下面的测试代码如示:
public void TestFactorial() { int expected = 6; int actual = MyClass.CalculateFactorial(3); Assert.AreEqual(expected, actual, "Factorial is Invalid"); expected = 1; actual = MyClass.CalculateFactorial(0); Assert.AreEqual(expected, actual, "Factorial is Invalid"); }


    Assert是一个静态类,在Microsoft.VisualStudio.TestTools.UnitTesting命名空间中可以找到它。我们可以使用Assert.AreEqual方法来测试两个值是否相等。当这两个值不等时,返回false。下面的计算阶乘的代码:

class MyClass { public static int CalculateFactorial(int Number) { if (Number < 0) return -1; // -1 = undefined if (Number <= 1) return 1; int fact = 1; for (int i = 0; i < Number; i++) { fact = fact * (Number - i); } return fact; } }



 现在我们已经有了对TDD的基本理解,下面我们可以来探索VSTETTDD中的使用。在VSTET中为我们提供了用于测试的每一样东西。在VSTET中允许我们建立、编辑和运行测试。我们甚至可以存储测试结果。

二、VSTE支持的测试类型

VSTET支持如下测试类型:
    单元测试:正如名子所示,这个测试类型的目标是测试我们的单元代码。VSTET集成了用于单元测试的框架:Microsoft.VisualStudio.QualityTools.UnitTestFramework,这个框架包括了各种命用于编写、执行、报告单元测试的名空间、类以及接口。
    Web测试:这个测试类型可以让我们记录Web应用程序页面之间的交互和导航动作。我们可以多次使用这些动作序列来测试我们的应用程序。
人工测试:这是最简单的测试类型。我们需要在确定预处理条件、提交条件和程序中所需要的结果之后运行应用程序,并运行测试用例。
负载测试::我们可以使用负载测试来运行单元测试或Web测试,来测试它们的性能指数。

顺序测试:这个测试类型由一系列按指定顺序排列的测试组成。要注意的是我们不能将负载测试包括在里面。
   
普通测试:这种测试类型可以让我们使用第三方的测试工具。例如,我们可以从其他测试源或在VSTET中可运行的测试导入到VSTET中。在我们包装了我们已经存在的测试、可执行的测试或第三方的工具后,VSTET就会象对待自己的测试一样对待它们。

0
相关文章