1.打開VS2013 --> 新建一個項目。這裏咱們默認建立一個控制檯項目。取名爲UnitTestDemo框架
2.在解決方案裏面新增一個單元測試項目。取名爲UnitTestDemoTest工具
建立完畢後項目結構大概以下:性能
3.進入控制檯項目UnitTestDemo的Program類,建立一個Add方法。單元測試
namespace UnitTestDemo { class Program { static void Main(string[] args) { } public static int Add(int num1, int num2) { return num1 + num2; } } }
4.咱們的目的就是測試上面的Add方法運行是否正常,返回結果是否正確。學習
5.在單元測試項目中引用控制檯項目,引用完畢後項目結構以下:測試
6.單元測試項目裏面UnitTest1這個類的名字取得太難看了,咱們把名字改成ProgramTest,代表這是在測試Program類。改完以下:spa
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestDemoTest { [TestClass] public class ProgramTest { [TestMethod] public void TestMethod1() { } } }
7.上面就是VS爲ProgramTest類默認生成的方法。能夠看到ProgramTest具備一個【TestClass】特性,代表這是一個測試類。TestMethod1具備一個【TestMethod】特性,代表這是一個測試方法。插件
8.能夠這樣理解,一個方法必須具備【TestMethod】特性,且其所屬的類具備【TestClass】特性,那麼這個方法纔會被VS認可爲一個【單元測試方法】。翻譯
若是沒有上面的兩個特性中的一個,編譯生成是沒有任何問題的。可是VS不會把其做爲一個【單元測試方法】。3d
9.「VS不把一個方法做爲【單元測試方法】」是什麼意思呢?
依次點擊VS的菜單欄【測試】--> 【窗口】-->【測試資源管理器】,能夠打開測試資源管理器。
10.測試資源管理器裏面會顯示當前解決方案裏面的全部單元測試。說明白點就是這裏只顯示符合【第8點】要求的方法。
你可能會說,爲何上面的圖裏面什麼都沒顯示,【TestMethod】特性和TestClass】特性如今不是都有嗎?
緣由是你尚未生成程序集。OK,按F6.就能夠看到【測試資源管理器】中顯示了【TestMethod1】:
11.咱們要清楚咱們建立單元測試的初衷:是用工具幫助咱們測試軟件的質量、穩定性、性能等等。【VS】在這裏就充當了工具的做用。
12.回到命名的問題,很明顯TestMethod這個名字太難看了,咱們把它改爲AddTest表示這是在測試Add方法。
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestDemoTest { [TestClass] public class ProgramTest { [TestMethod] public void AddTest() { } } }
13.截止目前,咱們已經創建了一個能夠執行的測試框架,雖然沒有起到什麼做用,可是測試已經能夠執行了。
執行測試的方法之一是:右鍵點擊須要測試的【單元測試】方法的名稱,選擇運行:
運行測試以後,能夠在測試資源管理器中查看測試的結果:
執行單元測試的方法有不少,這些須要咱們在不斷的學習中去體會。
14.接下來咱們作一點有意義的事情。改進AddTest方法:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestDemoTest { [TestClass] public class ProgramTest { [TestMethod] public void AddTest() { int num1 = 100; int num2 = 200; Assert.AreEqual(Program.Add(num1, num2), 300); } } }
在這以前,請把Program類的可見性改成internal或者Public。
15.「Assert」以前沒接觸過單元測試的朋友,或者英語差點的可能不認識。上谷歌翻譯:
清楚的看到,「Assert」的意思是「斷言」。因此「Assert.AreEqual(Program.Add(num1, num2), 300);」這句話的意思就是:我斷言「Program.Add(num1, num2)」的結果就是300。
而斷言的正確與否只須要經過測試工具測試便可。若是測試經過說明此斷言是正確的,反之就說明這個測試失敗了。
斷言有不少種,包括上面普通的Assert,還有字符串斷言,集合斷言等等。
16.ok,運行測試能夠看到測試經過。
17.若是上面所說的你都明白,那麼到這裏爲止,你能夠本身編寫簡單的單元測試代碼並執行測試了。
最後還有一個要說的就是,若是你以爲手動編寫單元測試類和方法太麻煩,那麼能夠使用「Unit Test Generator」插件幫助你生成單元測試和方法。
這樣你能夠把重心偏到編寫測試邏輯上。
「Unit Test Generator」能夠經過VS菜單欄【工具】-->【擴展和更新】-->搜索「「Unit Test Generator」」取得。
18.安裝「Unit Test Generator」須要重啓VS。
在須要進行單元測試的類和方法上點擊右鍵,如圖操做(圖中演示的是生成單元測試方法)
點擊以後會彈出一個對話框,須要你配置一個名稱的規則,配置好後點擊ok便可生成測試方法。
19.最後但願你們養成隨時測試代碼的好習慣。
轉載聲明:歡迎轉載,但請保留原文連接。
友情連接:http://www.zhoumy.cn