国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

使用Visual Studio 2013進(jìn)行單元測試--初級篇

2019-11-17 02:44:17
字體:
供稿:網(wǎng)友

使用Visual Studio 2013進(jìn)行單元測試--初級篇

1.打開VS2013 --> 新建一個項目。這里我們默認(rèn)創(chuàng)建一個控制臺項目。取名為UnitTestDemo

2.在解決方案里面新增一個單元測試項目。取名為UnitTestDemoTest

創(chuàng)建完畢后項目結(jié)構(gòu)大概如下:

3.進(jìn)入控制臺項目UnitTestDemo的PRogram類,創(chuàng)建一個Add方法。

namespace UnitTestDemo{    class Program    {        static void Main(string[] args)        {        }        public static int Add(int num1, int num2)        {            return num1 + num2;        }    }}

4.我們的目的就是測試上面的Add方法運行是否正常,返回結(jié)果是否正確。

5.在單元測試項目中引用控制臺項目,引用完畢后項目結(jié)構(gòu)如下:

6.單元測試項目里面UnitTest1這個類的名字取得太難看了,我們把名字改為ProgramTest,表明這是在測試Program類。改完如下:

using System;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace UnitTestDemoTest{    [TestClass]    public class ProgramTest    {        [TestMethod]        public void TestMethod1()        {        }    }}

7.上面就是VS為ProgramTest類默認(rèn)生成的方法。可以看到ProgramTest具有一個【TestClass】特性,表明這是一個測試類。TestMethod1具有一個【TestMethod】特性,表明這是一個測試方法。

8.可以這樣理解,一個方法必須具有【TestMethod】特性,且其所屬的類具有【TestClass】特性,那么這個方法才會被VS承認(rèn)為一個【單元測試方法】。

如果沒有上面的兩個特性中的一個,編譯生成是沒有任何問題的。但是VS不會把其作為一個【單元測試方法】。

9.“VS不把一個方法作為【單元測試方法】”是什么意思呢?

依次點擊VS的菜單欄【測試】--> 【窗口】-->【測試資源管理器】,可以打開測試資源管理器。

10.測試資源管理器里面會顯示當(dāng)前解決方案里面的所有單元測試。說明白點就是這里只顯示符合【第8點】要求的方法。

你可能會說,為什么上面的圖里面什么都沒顯示,【TestMethod】特性和TestClass】特性現(xiàn)在不是都有嗎?

原因是你還沒有生成程序集。OK,按F6.就可以看到【測試資源管理器】中顯示了【TestMethod1】:

11.我們要清楚我們創(chuàng)建單元測試的初衷:是用工具幫助我們測試軟件的質(zhì)量、穩(wěn)定性、性能等等。【VS】在這里就充當(dāng)了工具的作用。

12.回到命名的問題,很明顯TestMethod這個名字太難看了,我們把它改成AddTest表示這是在測試Add方法。

using System;using Microsoft.VisualStudio.TestTools.UnitTesting;namespace UnitTestDemoTest{    [TestClass]    public class ProgramTest    {        [TestMethod]        public void AddTest()        {        }    }}

13.截止目前,我們已經(jīng)建立了一個可以執(zhí)行的測試框架,雖然沒有起到什么作用,但是測試已經(jīng)可以執(zhí)行了。

執(zhí)行測試的方法之一是:右鍵點擊需要測試的【單元測試】方法的名稱,選擇運行:

運行測試之后,可以在測試資源管理器中查看測試的結(jié)果:

執(zhí)行單元測試的方法有很多,這些需要我們在不斷的學(xué)習(xí)中去體會。

14.接下來我們做一點有意義的事情。改進(jìn)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”之前沒接觸過單元測試的朋友,或者英語差點的可能不認(rèn)識。上谷歌翻譯

清楚的看到,“Assert”的意思是“斷言”。所以“Assert.AreEqual(Program.Add(num1, num2), 300);”這句話的意思就是:我斷言“Program.Add(num1, num2)”的結(jié)果就是300。

而斷言的正確與否只需要通過測試工具測試即可。如果測試通過說明此斷言是正確的,反之就說明這個測試失敗了。

斷言有很多種,包括上面普通的Assert,還有字符串?dāng)嘌裕蠑嘌缘鹊取?/p>

16.ok,運行測試可以看到測試通過。

17.如果上面所說的你都明白,那么到這里為止,你可以自己編寫簡單的單元測試代碼并執(zhí)行測試了。

最后還有一個要說的就是,如果你覺得手動編寫單元測試類和方法太麻煩,那么可以使用“Unit Test Generator”插件幫助你生成單元測試和方法。

這樣你可以把重心偏到編寫測試邏輯上。

“Unit Test Generator”可以通過VS菜單欄【工具】-->【擴(kuò)展和更新】-->搜索““Unit Test Generator””取得。

18.安裝“Unit Test Generator”需要重啟VS。

在需要進(jìn)行單元測試的類和方法上點擊右鍵,如圖操作(圖中演示的是生成單元測試方法)

點擊之后會彈出一個對話框,需要你配置一個名稱的規(guī)則,配置好后點擊ok即可生成測試方法。

19.最后希望大家養(yǎng)成隨時測試代碼的好習(xí)慣。

轉(zhuǎn)載聲明:歡迎轉(zhuǎn)載,但請保留原文鏈接。

友情鏈接:http://www.zhoumy.cn


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 如东县| 和政县| 仁怀市| 隆尧县| 郑州市| 常熟市| 邯郸市| 荃湾区| 忻城县| 靖边县| 北票市| 永康市| 宜良县| 青铜峡市| 黎川县| 邓州市| 衡山县| 洪泽县| 宾川县| 汕头市| 上饶县| 石泉县| 祥云县| 全椒县| 自贡市| 南部县| 兰州市| 绥芬河市| 聂荣县| 乌兰浩特市| 涟水县| 张家口市| 饶平县| 育儿| 枣阳市| 个旧市| 二手房| 建湖县| 达孜县| 屯留县| 顺昌县|