DotNet下NUnit的使用(2)—- 第一个NUnit工程 收藏
准备工作
1. 打开visual studio, 新建一个“Class Library”工程,命名为“NUnitDemo”
2. 在工程中新建一个Class:“FirstNUnitClass”, 在类中添加一个public的方法:GetBonous(int level), 最终类的内容:

准备工作
1. 打开visual studio, 新建一个“Class Library”工程,命名为“NUnitDemo”
2. 在工程中新建一个Class:“FirstNUnitClass”, 在类中添加一个public的方法:GetBonous(int level), 最终类的内容:

public int GetBonous(int level)
{
    int bonous = 0;
    switch (level)
    {
          case 1:
              bonous = 1000;
              break;
          case 2:
              bonous = 2000;
              break;
          case 3:
              bonous = 3000;
              break;
          default:
              bonous = 0;
              break;
     }
     return bonous;
}
在当前solution下 新建一个”Class Library”工程,命名为“NUnitDemoTest”

将项目”NUnitDemo”添加到Test工程的引用里面,将nunit.framework.dll, nunit.core.dll, nunit.fixtures.dll这三个文件的路径引用也添加到工程的引用里面。 新建一个类”FirstNUnitDemoTest”, 敲入一下内容:

[TestFixture]
public class FirstNUnitDemoTest
{
  private FirstNUnitDemo _firstNunitDemo;
  public FirstNUnitDemoTest()
  {
    _firstNunitDemo = new FirstNUnitDemo();
  }
  [Test]
  public void GetBonousLevel1Test()
  {
    int level = 1;
    int expectBonous = 1000;
    int actualBonous = _firstNunitDemo.GetBonous(level);
    Assert.AreEqual(expectBonous, actualBonous, "Bonous");
  }
  [Test]
  public void GetBonousLevel2Test()
  {
    int level = 2;
    int expectBonous = 2000;
    int actualBonous = _firstNunitDemo.GetBonous(level);
    Assert.AreEqual(expectBonous, actualBonous, "Bonous");
  }
  [Test]
  public void GetBonousLevel3Test()
  {
    int level = 3;
    int expectBonous = 3000;
    int actualBonous = _firstNunitDemo.GetBonous(level);
    Assert.AreEqual(expectBonous, actualBonous, "Bonous");
  }
  [Test]
  public void GetBonousLevel4Test()
  {
    int level = 4;
    int expectBonous = 0;
    int actualBonous = _firstNunitDemo.GetBonous(level);
    Assert.AreEqual(expectBonous, actualBonous, "Bonous");
  }
  [Test, ExpectedException(typeof(ArgumentException), ExpectedMessage = "Invalid argument.")]
  public void GetBonousLevel0Test()
  {
    int level = 0;
    _firstNunitDemo.GetBonous(level);
  }
}

在solution的根目录下面新建两个文件,  NUnitDemo.Test.nunit 和 NUnitDemo.Test.config, 内容分别为: 文件NUnitDemo.Test.nunit:

<NUnitProject>
 <Settings appbase="." />
 <Config name="Default" binpathtype="Auto">
  <assembly path="NUnitDemoTestbinDebugNUnitDemoTest.dll" />
 </Config>
</NUnitProject>

注意要把NUnitDemoTest.dll这个文件的路径设置到您对应的磁盘目录。
文件NUnitDemo.Test.config:(注:该文件相当于web站点的web.config文件,数据库连接等信息会出现在这里,这里就不列出了)。
用NUnit.exe工具打开NUnitDemo.Test.nunit,点击“运行”,看看结果。。。

对NUnit的Attribute的介绍:

1. TestFixture:  这个attribute用于需要测试的类,是一个用于类的attribute,在含有unit-tests的类上都要加上这个attribute,不然您将看不到任何的测试用例^_^.
2. Test: 这是一个用于方法(method)d哦attribute, 用在您需要当作unit-test的method上,如果没有这个标签,那么这个方法将不会出现在unit-tests列表中。
3. 结果验证:Assert.*方法可以用来验证方法运行的结果是否与您期待的结果一直,这个方法的具体列表和说明请参阅http://www.nunit.org/index.php?p=assertions&r=2.4.8
到这里为止,我们看到的知识NUnit最基本的功能,还有其他常用的attribute,例如Setup,TearDown等也是NUnit中很重要而且也很常用的attribute,如果想熟练的使用NUnit,学习这两个attribute也是必不可少的,混合使用这连个attribute可以解决例如“对数据库中的数据进行unit-test的时候不影响原有数据”等一系列的功能。

相关文章:

  1. 在.NET项目中使用log4net
  2. Update the application configuration file automatically in C#
  3. DotNet下NUnit的使用(1)—- NUnit入门
  4. 使用InternalsVisibleTo给assembly添加“友元assembly”
  5. 性能: 字符串倒序算法 (C# version)
  6. Everyday English for work
  7. How to use Sql Azure
  8. The media’s responsibility
  9. WordPress插件StyleBox
  10. 很漂亮的适合在windows7&vista下使用的壁纸