Unity 單元測試(NUnit,UnityTestTools)


在軟件開發中單元測試是非常重要的一個環節, =。=盤子臉去了幾家公司都沒有單元測試這個概念. 我們的系統雖然從代碼看上是分離的, 在多數情況下都需要依賴於其他模塊來運行.(單元測試部分內容教我解決這個問題.) 雖然學習了單元測試,但我相信實際過程中使用不到了. 接下來我稍微介紹下Unity如何進行單元測試.(推薦書籍”單元測試的藝術第二版”)

 

為什么要使用單元測試:

1. 我們可以從單元測試入口-> 我們編寫的游戲模塊 (而不是直接在Unity運行進入我們的模塊)

2. 在一個地方統一編寫單元測試, 造成測試代碼不會分散

3. 還有很多很多優點,(使用單元測試很可能造成項目進度延后)

 

測試框架:

1. C# NUnit 非常不錯的框架(需要在visual studio下載兩個插件)

    Templates     是創建項目的一個模版,安裝之后可以在visual studio中創建測試項目了

    Test Adapter 是調試窗口

image

1. UnityTestTools(框架已經對Unity窗口進行擴展,測試就直接在Unity窗口進行即可(大同小異而已)),AssetStore中可以下到

 

 

開始介紹NUnit框架基本使用:

首先我們創建一個控制台程序叫單元測試項目,接着創建NUnit測試項目(叫NUnit.Test1)

image

我們制作一個文件后綴名驗證模塊,其中一個FileVerify驗證后綴名是否合法(txt). 接下來在控制台項目中創建一個FileVerify類里面有一個

IsFileNameEndTxt方法驗證字符串是否以txt結尾,是返回true,不是返回false

public class FileVerify
    {
        //驗證文件后后綴明是不是txt
        public bool IsFileNameEndTxt(string fileName) 
        {
            if(fileName.EndsWith(".txt"))
                return true;
            else
                return false;
        }
    }

接下來看下我們的NUnit項目,他已經幫我們創建一個類(TestClass),里面已經有一個方法TestMethod().現在我們不需要寫任何代碼,點擊菜單欄-測試->窗口->測試資源管理器, 如下圖:

點擊全部運行,TestMethod就測試成功了.

image

接下來我們在TestMethod寫入測試FileVerify.IsFileNameEndTxt()方法的單元測試, 我們首先想到傳入1.txt 和 txt.兩個字符串.你的項目要創建

FileVerify類必須NUnit項目引入控制台項目

[TestFixture]
    public class TestClass
    {
        [Test]
        public void TestMethod()
        {
            FileVerify f = new FileVerify();
            bool isResult =  f.IsFileNameEndTxt("1.txt");
            Assert.IsTrue(isResult);

            isResult = f.IsFileNameEndTxt("txt.");
            Assert.IsTrue(isResult,"這里報錯了");
        }
    }

我們在運行測試(這里一定會失敗啦,因為”txt.”返回的是false), 遇到了Asset.IsTure(false) 拋出異常

image

單元測試如何調試?

選中單個測試-> 調試選中測試

 

到這里你已經學會了如何進行一個單元測試啦!()

==============================================================================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM