Looking for nunit Answers? Try Ask4KnowledgeBase
Looking for nunit Keywords? Try Ask4Keywords

nunitnunit入門


備註

本節概述了nunit是什麼,以及開發人員可能想要使用它的原因。

它還應該提到nunit中的任何大型主題,並鏈接到相關主題。由於nunit的文檔是新的,您可能需要創建這些相關主題的初始版本。

版本

發布日期
2.2 2004年8月8日
2.2.1 2004-10-26
2.2.2 2004-12-07
2.2.3 2005-02-14
2.2.4 2005-12-14
2.2.5 2005-12-22
2.2.6 2006-01-21
2.2.7 2006-02-18
2.2.8 2006-04-21
2.2.9 2006-11-26
2.2.10 2007-03-15
2.4 RC1 2007-02-25
2.4(最終版) 2007-03-16
2.4.1 2007-05-03
2.4.2 2007-08-02
2.4.4 2007-10-20
2.4.5 2007-11-23
2.4.6 2007-12-31
2.4.7 2008-03-30
2.4.8 2008-07-21
2.5 2009-05-02
2.5.1 2009-07-08
2.5.2 2009-08-10
2.5.3 2009-12-11
2.5.4 2010-04-08
2.5.5 2010-04-22
2.5.6 2010-07-24
2.5.7 2010-08-01
2.5.8 2010-10-14
2.5.9 2010-12-14
2.5.10 2011-04-02
2.6 2012-02-20
2.6.1 2012-08-04
2.6.2 2012年10月22日
2.6.3 二〇一三年十月一十日
2.6.4 情節中字
3.0(Alpha 1) 2014年9月22日
3.0(Beta 1) 2015年3月25日
3.0 RC1 2015年11月1日
3.0.0最終版本二〇一五年十一月十五日
3.0.1 2015年12月1日
3.2 2016年3月5日
3.2.1 2016年4月19日
3.4 2016年6月25日

你好,世界

[TestFixture]
public class UnitTest1
{
    class Message
    {
        public string Text { get; } = "Hello World";
    }

    [Test]
    public void HelloWorldTest()
    {
        // Act
        var message = new Message();

        // Assert
        Assert.That(message.Text, Is.EqualTo("Hello World"));
    }
}
 

Hello World測試

使用NuGet進行安裝

Install-Package NUnit
 

該軟件包包括創建單元測試所需的所有程序集。

可以使用以下方法之一執行測試:

  • Visual Studio單元測試窗口
  • 控制台運行
  • 支持NUnit 3的第三方運動員

Visual Studio單元測試窗口

要使用Visual Studio單元測試窗口執行測試,請安裝NUnit 3測試適配器。 https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d

控制台運行器

通過NuGet安裝NUnit Console Runner

Install-Package NUnit.Console
 

可執行文件nunit3-console.exe位於packages \ NUnit.3.XX \ tools中

TestCaseAttribute

[TestCase(0, 0, 0)]
[TestCase(34, 25, 59)]
[TestCase(-1250, 10000, 8750)]
public void AddNumbersTest(int a, int b, int expected)
{
    // Act
    int result = a + b;
            
    // Assert
    Assert.That(result, Is.EqualTo(expected));
}
 

AddNumbersTest已通過

為什麼你不能使用Assert.Equals

曾經想知道為什麼你不能為Nunit和MSTest使用Assert.Equals()。如果你還沒有開始,你需要知道你不能使用這種方法。相反,您將使用Assert.AreEqual()來比較兩個對象的相等性。

這裡的原因很簡單。與任何類一樣,Assert類繼承自System.Object,它具有公共虛擬Equals方法,用於檢查給定對像是否等於當前對象。因此,調用equals方法將是一個錯誤,因為在單元測試中,您將比較兩個與Assert類無關的對象。因此,Nunit和MSTest都選擇為此目的提供方法Assert.AreEqual。

此外,為了確保您不會錯誤地使用Equals方法,他們決定拋出異常以警告您,如果您錯誤地使用了它。

Nunit實施:

        [EditorBrowsable(EditorBrowsableState.Never)]
    public static new bool Equals(object a, object b)
    {
        // TODO: This should probably be InvalidOperationException
        throw new AssertionException("Assert.Equals should not be used for Assertions");
    }