1. 程式人生 > >unity中的單元測試

unity中的單元測試

前端時間研究了軟體的開發方法,於是打算引進TDD(測試驅動開發)。TDD的優缺點就不細說了,網上一搜一大把。

unity中常用的測試工具

1.NUnit

unity5.3以後已經在Editor中集成了測試模組,該測試模組依託於http://nunit.org/

2.Unity Test Tool

Unity官方還推出了一款測試外掛Unity Test Tool(基於NSubstitute),除了單元測試之外還包括:

    單元測試
    整合測試
    斷言元件

需要指出的是Unity Test Tool基於NSubstitute這個庫。

下面以NUnit為例:(要引入NUnit.Framework名稱空間)

    public class h1  {

        public float currentHp;
        public void TakeDamage(float a)
        {
            this.currentHp -= a;
        }
    }



    [TestFixture]
    public class h1Tests  {

        [Test]
        public void TakeDamage_h1()
        {
            //Arrange
            h1 h = new h1();
            h.currentHp = 100f;
            //Act
            h.TakeDamage(50f);
            //Assert
            Assert.AreEqual(50f, h.currentHp);
        }
    }

[TestFixture]:標識一個自動化NUnit測試的類。

[Test]:可以加在一個方法上,標識這個方法是一個需要呼叫的自動化測試。

當然,還有一些別的特性供我們使用
常用的NUnit屬性見下表:

    [SetUp] 
    [TearDown]  
    [TestFixture] 
    [Test] 
    [TestCase] 
    [Category] 
    [Ignore] 

注意:

測試單元的行為——3A原則

有了NUnit屬性可以標識可以自動執行的測試程式碼和測試程式碼的一些命名規則,下面我們就來看看如何測試自己的程式碼。
一個單元測試通常包含三個行為,可以歸納為3A原則即:

    Arrange,準備物件,建立物件並進行必要的設定。
    Act,操作物件。
    Assert,斷言某件事情是預期的。

如有不明白的地方歡迎留言交流。