NUnit的測試方法與VS中啟用它來調試

來源:互聯網
上載者:User

在VS中加入單元測試架構:

右鍵項目“屬性“來到“調試”

啟動操作,選擇“啟動外部程式”選擇NUnit程式

C:\Program Files\NUnit 2.5.9\bin\net-2.0\nunit.exe

這樣就可以在產生的時候,自動啟用NUnit進行調試

 

 

Not a Test Assembly

The assembly was not built with any known testing framework

 

出現上述這種錯誤,確認有沒有載入using NUnit.Framework;

 

using NUnit.Framework;

namespace NUnitTest

{

    [TestFixture]

    public class Class1

    {

        [Test]

        public void Add()

        {

            int a = 1;

            int b = 2;

            int sum = a + b;

            Assert.AreEqual(sum, 3);

        }

    }

}

標識類的特性為TestFixture,以及方法的特性標識為Test這樣就可以測試了,其中Assert是進行測驗的一個類,裡面有許多的靜態方法。

當然不標識類的特性也可以測試,不標識方法的特性,調試的時候就不出現。

 

測試的:

如果把上面重複的公用,怎麼做呢,如下:

private int a;

private int b;

[SetUp]

public void InitializeOperands()

{

a = 1;

b = 2;

}

使用SetUp來標識即可。

如果想忽略這個方法

添加[Ignore]特性,這個方法還是會顯示,只是會忽略測試,進度條是黃色的。

 

其他的一些方法

TestFixtureSetUp開啟資料庫連接,資料共用

TestFixtureTearDown關閉資料庫連接, 資料共用

SetUp或TearDown

[Category("加法")]把一些方法分組。

異常的捕獲

[ExpectedException(typeof(DivideByZeroException))]

        public void DivideByZero()

        {

            int zero = 0;

            int result = a / zero;

            Assert.Fail("Exception");

        }

如果存在異常就通過,所以上面這個通過測試。

如果修改為[ExpectedException(typeof(InvalidOperationException))]

那麼就會報錯,嘗試除以0,這是不允許的。

 

 

好了,綜合示範一下

namespace NUnitTest

{

    [TestFixture]

    public class Class1

    {

        [TestFixtureSetUp]

        public void FixtureSetUp()

        {

            Console.Out.WriteLine("FixtureSetUp");

        }

        [TestFixtureTearDown]

        public void FixtureTearDown()

        {

            Console.Out.WriteLine("FixtureTearDown");

        }

        [SetUp]

        public void SetUp()

        {

            Console.Out.WriteLine("SetUp");

        }

        [TearDown]

        public void TearDown()

        {

            Console.Out.WriteLine("TearDown");

        }

        [Test]

        public void Test1()

        {

            Console.Out.WriteLine("Test 1");

        }

        [Test]

        public void Test2()

        {

            Console.Out.WriteLine("Test 2");

        }

    }

}

 

運行結果:

FixtureSetUp

***** NUnitTest.Class1.Test1

SetUp

Test 1

TearDown

***** NUnitTest.Class1.Test2

SetUp

Test 2

TearDown

FixtureTearDown

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.