- 軟件再工程:優(yōu)化現(xiàn)有軟件系統(tǒng)的方法與最佳實(shí)踐
- (美)Bradley Irby
- 691字
- 2020-11-04 16:45:01
3.2 創(chuàng)建單元測(cè)試
在列舉一個(gè)單元測(cè)試的真實(shí)案例之前,我們需要關(guān)注一下如何創(chuàng)建單元測(cè)試的工程項(xiàng)目。我們將使用Visual Studio內(nèi)置的單元測(cè)試工程,因?yàn)樗且粋€(gè)已經(jīng)被很好地集成到IDE中的可靠產(chǎn)品。
注意
在這里我們使用的是Microsoft單元測(cè)試框架,但是還有很多好的框架也是可用的。這里闡述的理念同樣適用于其他框架。
Microsoft單元測(cè)試框架中有一個(gè)支持單元測(cè)試的特殊項(xiàng)目類型,所以我們必須要做的第一件事是為當(dāng)前的解決方案增加一個(gè)新項(xiàng)目。右鍵單擊solution Explorer(解決方案資源管理器)下的solution(解決方案)鍵然后選擇Add(添加)→New Project(新項(xiàng)目)。選擇一種測(cè)試項(xiàng)目類型,并指定一個(gè)合適的名稱,然后單擊OK鍵。我們會(huì)為solution中的每個(gè)標(biāo)準(zhǔn)項(xiàng)目創(chuàng)建一個(gè)獨(dú)立的測(cè)試項(xiàng)目。因此,如圖3.1所示,我們用標(biāo)準(zhǔn)項(xiàng)目的名字末尾加UnitTests字樣來命名測(cè)試項(xiàng)目。
這樣,我們就為已有的測(cè)試樣例創(chuàng)建了一個(gè)新的測(cè)試項(xiàng)目,并且添加了必要的引用。測(cè)試樣例類中的一些示例代碼,對(duì)于目前來說,并不是必須的,所以為了簡單起見,你可以參考測(cè)試樣例來修改你的測(cè)試。對(duì)于你的第一個(gè)單元測(cè)試來說,這就是你目前需要的全部。它僅確保True==True。
代碼清單3.2 第一個(gè)簡單測(cè)試
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace CodeSamples.Ch03_UnitTesting.Listing2 { [TestClass] public class ExampleUnitTest { [TestMethod] public void ExampleTest() { Assert.IsTrue(true); } } }
圖3.1 添加一個(gè)新的測(cè)試項(xiàng)目
為了運(yùn)行該測(cè)試,右鍵單擊類名并選擇Run Tests(運(yùn)行測(cè)試),如圖3.2所示。
運(yùn)行完測(cè)試后,圖3.3所示的窗口表明測(cè)試正常通過。
為了能夠看到測(cè)試失敗時(shí)將會(huì)發(fā)生什么,你可以修改代碼,故意使測(cè)試失敗(如代碼清單3.3所示)。
代碼清單3.3 一個(gè)失敗的測(cè)試
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace CodeSamples.Ch03_UnitTesting.Listing3 { [TestClass] public class ExampleFailingUnitTest { [TestMethod] public void ExampleTest() { Assert.IsTrue(false); } } }
圖3.2 在IDE內(nèi)運(yùn)行測(cè)試
圖3.3 測(cè)試結(jié)果屏幕
可以看到類似圖3.4所示的出錯(cuò)信息。
我們已經(jīng)知道了如何創(chuàng)建單元測(cè)試文件,現(xiàn)在回到關(guān)于測(cè)試的話題上。
圖3.4 失敗測(cè)試
- ASP.NET Web API:Build RESTful web applications and services on the .NET framework
- Machine Learning with R Cookbook(Second Edition)
- 基于Java技術(shù)的Web應(yīng)用開發(fā)
- Learning Informatica PowerCenter 10.x(Second Edition)
- Python Geospatial Development(Second Edition)
- Python機(jī)器學(xué)習(xí)編程與實(shí)戰(zhàn)
- Unity Game Development Scripting
- Selenium Testing Tools Cookbook(Second Edition)
- Everyday Data Structures
- Java EE 7 with GlassFish 4 Application Server
- Visual Basic 程序設(shè)計(jì)實(shí)踐教程
- ROS機(jī)器人編程實(shí)戰(zhàn)
- Monitoring Docker
- Clojure編程樂趣
- Visual C#(學(xué)習(xí)筆記)