NET开源项目介绍及资源推荐——单元测试

发表于:2009-04-08来源:作者:点击数: 标签:开源单元项目NetNET
导读: 说到 单元测试 ,大家首先会想到 NUnit ,但对于NUnit来说还存在着一些不足,比如说它不能够与VS.NET IDE集成、扩展能力比较差等,除此之外我们还需要一些自动化的 测试工具 ,本文将简单介绍一下如下几种 单元测试工具 以及推荐一些学习资源。 1.NU

导读:
说到单元测试,大家首先会想到NUnit,但对于NUnit来说还存在着一些不足,比如说它不能够与VS.NET IDE集成、扩展能力比较差等,除此之外我们还需要一些自动化的测试工具,本文将简单介绍一下如下几种单元测试工具以及推荐一些学习资源。
  1.NUnit
  2.TestDriven.Net
  3.NUnitForms
  4.NUnitAsp
  
    一.NUnit 
        提起大名鼎鼎的NUnit,我想没有几个不知道吧?NUnit是一个专门针对于.NET的单元测试框架。在这之前有针对Java的JUnit,针对C++的 CPPUnit,它们都是属于xUnit家族。 NUnit是xUnit家族种的第4个主打产品,完全由C#语言来编写,并且编写时充分利用了许多.NET的特性,比如反射,客户属性等等,最重要的一点 是它适合于所有.NET语言。
  
        编写一段简单的单元测试代码: 
        使用非常简单,运行后如下图所示:
  [TestFixture]public class TestDatabase{
  [Test]
  public void TestWithDebugger()
  {
  ClassA ca = new ClassA();
  int expected = 3 int result = ca.GetResult();
  Assert.AreEqual(expected,result);
  }}
  NUnit 
                     

        NUnit虽然在使用上非常简单,赢得了一部分用户,甚至于微软在企业库的源码中也提供了使用NUnit测试的版本,但是NUnit让我最不爽的地方是没有提供 Visual Studio IDE插件,这样如果做单元测试,会发现自己每天忙于奔波于IDE和NUnit GUI之间,不停的在切换窗口;还有一点NUnit虽然跟JUnit是兄弟,但是它的威望和能力相较Junit就差远了,尤其是扩展能力,后面我会介绍到 一个NUnit的WinForm插件。
  
    官方主页:http://www.nunit.org/
  
    学习资源 
        1.NUnit的官方文档 
        2.园子里LIVE的NUnit详细使用方法 
        个人认为,看以上两篇中文资料足以学会NUnit的使用,它的难点在于测试用例的编写上,而不是工具本身的使用。
  
    二.TestDriven.Net 
        TestDriven.Net列 在开源项目介绍里面其实有些不太合适,因为它现在已经是一种商业化的工具,只有个人版可以免费下载使用,个人认为在开发中个人版的功能已经足够了,之所以 我要把它放在这里介绍,是因为它太优秀了。前面说的NUnit,虽然使用非常简单,但是它不能与我们的.NET开发环境集成起来,而 TestDriven.Net就是这样一款以插件的形式集成在Visual Studio中的单元测试工具,它的前身是NUnitAddIn,由Jamie Cansdale大师开发,一开始作者只是想做一个NUnit插件集成到Visual Studio中,经过多次版本更新,NUnitAddIn在2004年9月底更名为TestDriven.NET,并在当年的12月初发布了它的第一个 Release版本,即TestDriven.NET 1.0。在今年的10月底,终于迎来了TestDriven.NET 2.0版本的发布,最新的2.0版本集成了.NET Reflector、NConver、NConverExplorer、TypeMock.NET等,功能更加强大,我们还是使用前面的例子:
  [TestFixture]public class TestDatabase{
  [Test]
  public void TestWithDebugger()
  {
  ClassA ca = new ClassA();
  int expected = 3 int result = ca.GetResult();
  Assert.AreEqual(expected,result);
  }} 
        它所有的操作都是通过IDE中的右键菜单完成,如下图所示: 
                

        由于跟IDE的集成,可以使我们很快的定位到出错的代码行: 
                

原文转自:http://www.ltesting.net