星空网 > 软件开发 > ASP.net

Visual Studio 2012使用NUnit单元测试实践01,安装NUnit并使用


 

在Visual Studio 2012中,默认使用Microsoft自带的MS-Test测试框架。但,Visual Studio同样允许使用第三方测试框架,比如NUnit,xUnit,MbUnit,等等。本篇体验使用NUnit进行单元测试。


在Visual Studio中创建一个解决方案。

 

在解决方案下添加一个名称为"LogAn"的类库。

 

创建名称为LogAnalyzer的类,编写如下:

 

namespace LogAn
{
  public class LogAnalyzer
  {
    public bool IsValidLogFileName(string fileName)
    {
      if (!fileName.EndsWith(".SLF"))
      {
        return false;
      }
      return true;
    }
  }
}

 

生成"LogAn"的类库项目。


在解决方案下添加一个"单元测试项目"。

 

接下来需要安装"NUnit Test Adapter", "NUnit Test Adapter"是介于NUnit和Visual Studio之间的一个适配器。依次点击"工具"、"扩展和更新",从中搜索并安装"NUnit Test Adapter"。

 

安装完毕,需要重启Visual Studio 2012。

 

在单元测试项目下,通过NuGet安装NUnit。

 

在单元测试项目下引用"LogAn"的类库。

 

编写一个测试类和测试方法,单元测试的命名规则有一定的约定,比如说:类名_目的_期望的结果,遵循这个命名规则:

Order_NumberOfOrders_GreaterThanZero_Success

 

以下是测试类和测试方法:

 

using LogAn;
using NUnit.Framework;
namespace MyFirstTestProject
{
  [TestFixture]
  public class LogAnalyzerTests
  {
    [Test]
    public void IsValidFileName_validFile_ReturnsTrue()
    {
      //Arrange
      LogAnalyzer analyzer = new LogAnalyzer();
      //Act
      bool result = analyzer.IsValidLogFileName("whatever.slf");
      //Assert
      Assert.IsTrue(result,"包含正确的后缀名");
    }
  }
}

 

生成单元测试项目。

 

点击Visual Studio 2012左上角的"测试资源管理器",点击"运行"。

 

显示未通过测试。

 

修改类库中的代码如下:

 

if (!fileName.ToLower().EndsWith(".slf"))

 

并重新生成类库。

 

再次运行单元测试项目,显示通过。

 

在单元测试中,如果一个测试中遗留了一些数据、状态或对象实例,可能会导致其它测试的失败。而定位测试之间的依赖性也是很困难的。解决办法是让所有测试之间没有任何依赖关系。NUnit为此提供了[Setup]和[TearDown]这两个特性,旨在某个测试方法执行之前做一些初始化工作,执行之后做一些清理工作。于是,现在测试代码可以修改成如下:

 

using LogAn;
using NUnit.Framework;
namespace MyFirstTestProject
{
  [TestFixture]
  public class LogAnalyzerTests
  {
    private LogAnalyzer m_anylyzer = null;
    [SetUp]
    public void Setup()
    {
      m_anylyzer = new LogAnalyzer();
    }
    [Test]
    public void IsValidFileName_validFile_ReturnsTrue()
    {
      //Act
      bool result = m_anylyzer.IsValidLogFileName("whatever.slf");
      //Assert
      Assert.IsTrue(result,"包含正确的后缀名");
    }
    [Test]
    public void IsValidFileName_validFileUpperCased_ReturnsTrue()
    {
      bool result = m_anylyzer.IsValidLogFileName("whatever.SLF");
      Assert.IsTrue(result, "包含正确的后缀名");
    }
    [TearDown]
    public void TearDown()
    {
      m_anylyzer = null;
    }
  }
}

 

参考资料:

 

.NET单元测试艺术,等等。




原标题:Visual Studio 2012使用NUnit单元测试实践01,安装NUnit并使用

关键词:Visual,Studio

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

2019年的亚马逊,如何开发高利润的细分类目产品?:https://www.ikjzd.com/articles/97477
亚马逊Prime Day2019日期泄露:从7月15日周一开始?:https://www.ikjzd.com/articles/97479
跨境快讯:亚马逊一周热点大事件盘点!:https://www.ikjzd.com/articles/97482
东南亚电商市场未来趋势详解:https://www.ikjzd.com/articles/97483
面对客户来电,外贸新手如何应对?:https://www.ikjzd.com/articles/97488
海外仓的安全如何保证?这些你需要知道……:https://www.ikjzd.com/articles/97489
三亚有哪些酒店值得入住?:https://www.vstour.cn/a/366173.html
零售晚报:丽人丽妆2023年扭亏为盈 玉容初、美壹堂等自有品牌增速超40% :https://www.kjdsnews.com/a/1836649.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流