您的位置:首页 > 其它

VS2010整合NUnit进行单元测试

2014-09-14 00:04 543 查看
1、下载安装NUnit(最新win版本为NUnit-2.6.0.12051.msi) http://www.nunit.org/index.php?p=download

2、下载并安装VS的Visual Nunit 2010 插件 http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099

注:可通过VS的“视图”->“其他窗口”找到并打开该插件(快捷键:Ctrl+F7)

3、新建测试项目UnitTestApp(示例为简单的控制台应用程序),引入nunit.framework类库(默认安装后文件所在路径:C:\Program Files \NUnit 2.6\bin\framework\nunit.framewor.dll)

5、新增NUnitTest类进行单元测试

using NUnit.Framework;

namespace UnitTestApp
{
[TestFixture]
public class NUnitTest
{
private Calculator calc = null;

[SetUp]
public void SetUp()
{
calc = new Calculator();
}

[Test]
public void AddTest()
{
int result = calc.Add(1, 1);
Assert.AreEqual(2, result);
}

[Test]
public void AddTestFailure()
{
int result = calc.Add(1, 1);
Assert.AreEqual(10, result);
}

[Test]
public void SingtonTest1()
{
calc = Calculator.GetInstance();
Assert.IsNull(calc);
}

[Test]
public void SingtonTest2()
{
calc = Calculator.GetInstance();
var calc2 = Calculator.GetInstance();
Assert.IsTrue(object.Equals(calc, calc2));
}

[TearDown]
public void TearDown()
{
calc = null;
}

}
}


编译控制台项目,点击Visual Nunit 插件的“Run”按钮,然后一切清静了。

注:在上面的代码中引用 NUnit.Framework,使用TestFixture标注这是用于测试的类,在其中使用 Test表示具体的测试用例。可以看到单元测试中最重要的是断言,其他完全交给框架自动化。测试结果可以通过插件及时看到:



demo下载:UnitTestApp

参考:/article/4635256.html

/article/4583862.html

基础知识:

[TestFixture]表示:类包含了测试代码(这个特性可以被继承)。这个类必须是公有的,这个类还必须有一个默认构造函数。

  [Test]表示它是一个测试方法。测试方法的返回值必须为void并且不能带有参数

  [SetUp]属性:用来标识方法,在开始所有测试之前执行,用来在测试前初始化一些资源,比如初始化类。

[TearDown]属性:用来标识方法,在所有测试完成之后执行,用来释放一些资源。

  [Ignore]属性:用来标识方法,指示这个方法由于某些原因暂时不需要测试(比如没有完成相关代码)

Nunit常用类和方法

Assert(断言):

  如果断言失败,方法将没有返回,并且报告一个错误。

  如果一个方法中包括了多个断言,在失败的断言之后的所有断言将不会被执行。基于这个原因,最好是为每个测试的断言使用try语句。

  1、测试二个参数是否相等

Assert.AreEqual( int expected, int actual );
Assert.AreEqual( decimal expected, decimal actual );
。。。。


  2、测试二个参数是否引用同一个对象

Assert.AreSame( object expected, object actual );
Assert.AreNotSame( object expected, object actual );


  3、测试一个对象是否被一个数组或列表所包含

Assert.Contains( object anObject, IList collection );


  比较断言:

  4、测试一个对象是否大于另一个对象

Assert.Greater( int arg1, int arg2 );


  5、测试一个对象是否小于另一个对象

Assert.Less( int arg1, int arg2 );


  类型断言:

Assert.IsInstanceOfType( Type expected, object actual );


  条件测试:

Assert.IsTrue( bool condition );
Assert.IsFalse( bool condition);
Assert.IsNull( object anObject );
Assert.IsNotNull( object anObject );
Assert.IsNaN( double aDouble );
Assert.IsEmpty( string aString );
Assert.IsNotEmpty( string aString );
Assert.IsEmpty( ICollection collection );
Assert.IsNotEmpty( ICollection collection );


字符串断言(StringAssert):提供了许多检验字符串值的有用的方法

StringAssert.Contains( string expected, string actual );
StringAssert.StartsWith( string expected, string actual );
StringAssert.EndsWith( string expected, string actual );
StringAssert.AreEqualIgnoringCase( string expected, string actual );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: