单元测试其实就是将项目细分为多个最小单元,然后对它们分别进行测试。关于"单元"的说法比较难定型,所谓细分也只是一个相对的逻辑概念。很多时候是与当前项目的具体情况有关。细分的时候有时会以单个类为单元,也有可能以单个窗口为单元。
如果将应用程序比喻为一台复杂的机器,其生产过程都有特定的工序。机器有许多的零部件组成,车间先把这些零部件生产出来,最后进行组装。因此,开发者也会考虑到,如果整台机器都组装完成后再进行检测,极有可能遇到很多问题,甚至有些问题很难跟踪查找。要是事先在每个零部件生产出来的时候就进行检验,及时修正问题或去除不合格的零部件。如此一来,在整台机器组装完成后,进行综合检测的时候就能够避免许多问题。
所以,单元测试就相当于在生产过程对每个零部件和每道工序都进行把关,及时发现并解决问题,使应用程序更加健壮稳定。同时也大大减免了后期大量的维护成本。
通常,开发者只是运用单元测试来验证代码是否存在逻辑错误。在进行单元测试的时候可以通过假设的数据来验证代码的执行是否正确,通常来说,如果不发生异常就认为测试通过。倘若发现错误,一种方法是抛出异常,当前测试会被标记为未通过;另一种方法可以使用Assert类的静态方法来进行验证,如果验证失败,表明测试未通过。
Assert类不是.NET框架的类,它随同Visual Studio一起安装,该类位于程序集Microsoft.VisualStudio.QualityTools.UnitTestFramework中,Microsoft.VisualStudio.TestTools.UnitTestinhg命名空间下。它公开了一系列静态方法以帮助开发人员报告测试结果,一旦断言失败,就说明测试没有通过。
下面总结了Assert类中公开的静