欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

現(xiàn)代軟件工程講義2開發(fā)技術-單元測試&回歸測試-創(chuàng)新互聯(lián)

1單元測試

為禹州等地區(qū)用戶提供了全套網頁設計制作服務,及禹州網站建設行業(yè)解決方案。主營業(yè)務為成都網站制作、網站建設、禹州網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

你的RP是由你的程序質量決定的。

——阿超

這一章講的是兩人合作,既然程序是兩個人寫的,那就會出現(xiàn)一個人寫的模塊被另一個人寫的模塊調用的情況。很多誤解、疏忽都發(fā)生在兩個模塊之間。如何能讓自己寫的模塊盡量無懈可擊?單元測試就是一個很有效的解決方案。

1.1  用VSTS寫單元測試

例子:我們寫一個比較常用的類型,看看它的單元測試應該怎么寫?比如在各種網站應用程序中都會用到的“用戶”這一類型。誰自告奮勇上來表演一下寫代碼?小飛,好,請上臺。

小飛創(chuàng)建了一個C#的類庫(Class Library),并寫了如代碼清單11-1的代碼:

代碼清單11-1

namespace DemoUser
{
    public class User
    {
        public User(string userEmail)
        {
            m_email = userEmail;
        }
        private string m_email; //user email as user id
    }   
}

好,現(xiàn)在右鍵選中User,就可以看到“Create Unit Tests”的菜單,這樣就可以創(chuàng)建新的單元測試(如圖11-2所示)。

現(xiàn)代軟件工程講義 2 開發(fā)技術 - 單元測試 & 回歸測試

圖11-2  創(chuàng)建單元測試項目

創(chuàng)建單元測試后,注意到在Solution Explorer中出現(xiàn)了三個新的文件(如圖11-3所示)。

現(xiàn)代軟件工程講義 2 開發(fā)技術 - 單元測試 & 回歸測試

圖11-3  新的單元測試文件

Class1.cs是程序的文件,而Class1Test.cs是與之對應的單元測試文件。

DemoUser.vsmdi:測試管理文件。

Localtestrun.testrunconfig:本地測試運行設置文件。

如何管理設置文件呢?右鍵再選屬性(Property)并不對。你得雙擊文件才能進入管理及設置界面。在設置界面中,你可以讓單元測試產生“demouser.dll”的代碼覆蓋報告。

注意在單元測試中,VSTS自動為你生成了測試的骨架,但是你還是要自己做不少事情,最起碼要把那些//TODO的事情給做了(如代碼清單11-2所示)。在這個時候,單元測試還都是用的Assert. Inconclusive,表明這是一個未經驗證的單元測試。

代碼清單11-2

/// <summary>
///A test for User (string)
///</summary>
[TestMethod()]
public void ConstructorTest()
{
string userEmail = null; // TODO: Initialize to an appropriate
// value
 
User target = new User(userEmail);
// TODO: Implement code to verify target
Assert.Inconclusive("TODO: Implement code to verify target");
}

進行簡單的修改后,我們得到了一個如代碼清單11-3正式的單元測試:

代碼清單11-3

[TestMethod()]
        public void ConstructorTest()
        {
            string userEmail = "someone@somewhere.com";
 
            User target = new User(userEmail);
 
            Assert.IsTrue(target != null);
        }
//我們還可以進一步測試E-mail是否的確是保存在User類型中

解釋單元測試的結構

從上面這個例子可以看到創(chuàng)建單元測試函數(shù)的主要步驟:

(1)設置數(shù)據(一個假想的正確的E-mail地址);

(2)使用被測試類型的功能(用E-mail地址來創(chuàng)建一個User類的實體);

(3)比較實際結果和預期的結果(Assert.IsTrue(target!= null);)。

現(xiàn)在可以運行單元測試了,同時可以看看代碼覆蓋報告“code coverage report”,代碼百分之百地都被覆蓋了。

當然這時候的代碼還有很多情況沒有處理,同學們在臺下雜曰——

處理空的字符串,長度為零的字符串,都是空格的串……

小飛熟練地用Copy/Paste又寫了下面的三個測試,如代碼清單11-4所示。

代碼清單11-4

 [TestMethod()]
        [ExpectedException(typeof (ArgumentNullException))]
        public void ConstructorTestNull()
        {
            User target = new User(null);
        }
 
        [TestMethod()]
        [ExpectedException(typeof(ArgumentException))]
        public void ConstructorTestEmpty()
        {
            User target = new User("");
        }
 
        [TestMethod()]
        [ExpectedException(typeof(ArgumentNullException))]
        public void ConstructorTestBlank()
        {
            User target = new User("     ");
        }

如果不修改類庫中的代碼,單元測試會報告這三個新的測試都失敗了。

小飛對代碼做了相應的修改。結果出了這樣的錯誤,見代碼清單11-5:

標題名稱:現(xiàn)代軟件工程講義2開發(fā)技術-單元測試&回歸測試-創(chuàng)新互聯(lián)
網頁鏈接:http://www.aaarwkj.com/article26/pgjcg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、面包屑導航、小程序開發(fā)網站營銷、企業(yè)網站制作網站維護

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設
男人天堂插插综合搜索| 日本一区二区欧美亚洲国产| 日本在线观看精品综合| 日韩一区二区高清看片| 日韩av黄色制服在线网站| 亚洲国产精品天堂av在线播放 | 一区二区视频精品在线观看| 久久精品国产亚洲av不丁香| 亚洲三区久久婷婷激情| 蜜臀国产综合久久第一页| 五月婷婷亚洲激情综合网| 日韩精品高清视频在线观看| 国产97精品在线播放| 色哟哟91精品色哟哟| 加藤桃香中文字幕在线| 午夜在线观看成人av| 99国产精品热久久婷婷| 日韩成人中文字幕在线视频| 日韩永久免费av网站| 国产亚洲无线码一区二区| 97乱碰视频在线观看| 一本久久综合亚洲鲁鲁五月天| 欧美 成人一区二区三区| 精品裸足人妻少妇二区三区 | 欧美一级免费黄片在线播放| 麻豆精东传媒一区二区| 亚洲七七久久精品中文国产| 国产自拍免费在线观看视频| 九九六热这里只有精品| 婷婷激情亚洲综合综合久久| 91九色国产老熟女乱子| 国产精品久久久久大屁股精品性色| 久久精品有码视频免费观看| 国产精品国产三级国av中文| 日韩一区二区亚洲精品| 亚洲av手机在线观看一区| 午夜伦理视频免费观看| 91久久高清国语自产拍| 亚洲福利区一区二区三区| 国产熟女系列一区二区三区| 国产成+人+综合+亚洲专区|