在軟件開發中單元測試是非常重要的一個環節, =。=盤子臉去了幾家公司都沒有單元測試這個概念. 我們的系統雖然從代碼看上是分離的, 在多數情況下都需要依賴於其他模塊來運行.(單元測試部分內容教我解決這個問題.) 雖然學習了單元測試,但我相信實際過程中使用不到了. 接下來我稍微介紹下Unity如何進行單元測試.(推薦書籍”單元測試的藝術第二版”)
為什么要使用單元測試:
1. 我們可以從單元測試入口-> 我們編寫的游戲模塊 (而不是直接在Unity運行進入我們的模塊)
2. 在一個地方統一編寫單元測試, 造成測試代碼不會分散
3. 還有很多很多優點,(使用單元測試很可能造成項目進度延后)
測試框架:
1. C# NUnit 非常不錯的框架(需要在visual studio下載兩個插件)
Templates 是創建項目的一個模版,安裝之后可以在visual studio中創建測試項目了
Test Adapter 是調試窗口
1. UnityTestTools(框架已經對Unity窗口進行擴展,測試就直接在Unity窗口進行即可(大同小異而已)),AssetStore中可以下到
開始介紹NUnit框架基本使用:
首先我們創建一個控制台程序叫單元測試項目,接着創建NUnit測試項目(叫NUnit.Test1)
我們制作一個文件后綴名驗證模塊,其中一個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就測試成功了.
接下來我們在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) 拋出異常
單元測試如何調試?
選中單個測試-> 調試選中測試
到這里你已經學會了如何進行一個單元測試啦!()
==============================================================================