六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

JUnit實(shí)施--2.回歸測試框架-JUnit

[摘要]2.回歸測試框架-JUnit通過前面的介紹,我們對JUnit有了一個(gè)大概的輪廓。知道了它是干什么的。現(xiàn)在讓我們動(dòng)手改寫上面的測試類testCar使其符合Junit的規(guī)范--能在JUnit中運(yùn)行。//...
2.回歸測試框架-JUnit
通過前面的介紹,我們對JUnit有了一個(gè)大概的輪廓。知道了它是干什么的。現(xiàn)在讓我們動(dòng)手改寫上面的測試類testCar使其符合Junit的規(guī)范--能在JUnit中運(yùn)行。
//執(zhí)行測試的類(JUnit版)import junit.framework.*;public class testCar extends TestCase {protected int expectedWheels;protected Car myCar;public testCar(String name) {super(name);}protected void setUp() {expectedWheels = 4;myCar = new Car();}public static Test suite() {/* * the type safe way *TestSuite suite= new TestSuite();suite.addTest(new testCar("Car.getWheels") { protected void runTest() { testGetWheels(); }});return suite;*//* * the dynamic way */return new TestSuite(testCar.class);}public void testGetWheels() {assertEquals(expectedWheels, myCar.getWheels());}}
改版后的testCar已經(jīng)面目全非。先讓我們了解這些改動(dòng)都是什么含義,再看如何執(zhí)行這個(gè)測試。

1>import語句,引入JUnit的類。(沒問題吧)

2>繼承 TestCase 。可以暫時(shí)將一個(gè)TestCase看作是對某個(gè)類進(jìn)行測試的方法的集合。詳細(xì)介紹請參看JUnit資料

3>setUp()設(shè)定了進(jìn)行初始化的任務(wù)。我們以后會(huì)看到setUp會(huì)有特別的用處。

4>testGetWheeels()對預(yù)期的值和myCar.getWheels()返回的值進(jìn)行比較,并打印比較的結(jié)果。assertEquals是junit.framework.Assert中所定義的方法,junit.framework.TestCase繼承了junit.framework.Assert。

5>suite()是一個(gè)很特殊的靜態(tài)方法。JUnit的TestRunner會(huì)調(diào)用suite方法來確定有多少個(gè)測試可以執(zhí)行。上面的例子顯示了兩種方法:靜態(tài)的方法是構(gòu)造一個(gè)內(nèi)部類,并利用構(gòu)造函數(shù)給該測試命名(test name, 如 Car.getWheels ),其覆蓋的runTest()方法,指明了該測試需要執(zhí)行那些方法--testGetWheels()。動(dòng)態(tài)的方法是利用內(nèi)省(reflection )來實(shí)現(xiàn)runTest(),找出需要執(zhí)行那些測試。此時(shí)測試的名字即是測試方法(test method,如testGetWheels)的名字。JUnit會(huì)自動(dòng)找出并調(diào)用該類的測試方法。

6>將TestSuite看作是包裹測試的一個(gè)容器。如果將測試比作葉子節(jié)點(diǎn)的話,TestSuite就是分支節(jié)點(diǎn)。實(shí)際上TestCase,TestSuite以及TestSuite組成了一個(gè)composite Pattern。 JUnit的文檔中有一篇專門講解如何使用Pattern構(gòu)造Junit框架。有興趣的朋友可以查看JUnit資料

如何運(yùn)行該測試呢?手工的方法是鍵入如下命令:
[Windows] d:>java junit.textui.TestRunner testCar[Unix] % java junit.textui.TestRunner testCar
別擔(dān)心你要敲的字符量,以后在IDE中,只要點(diǎn)幾下鼠標(biāo)就成了。運(yùn)行結(jié)果應(yīng)該如下所示,表明執(zhí)行了一個(gè)測試,并通過了測試:
.Time: 0OK (1 tests)
如果我們將Car.getWheels()中返回的的值修改為3,模擬出錯(cuò)的情形,則會(huì)得到如下結(jié)果:
.FTime: 0There was 1 failure:1) testGetWheels(testCar)junit.framework.AssertionFailedError: expected:<4> but was:<3>at testCar.testGetWheels(testCar.java:37)FAILURES!!!Tests run: 1,Failures: 1,Errors: 0
注意:Time上的小點(diǎn)表示測試個(gè)數(shù),如果測試通過則顯示OK。否則在小點(diǎn)的后邊標(biāo)上F,表示該測試失敗。注意,在模擬出錯(cuò)的測試中,我們會(huì)得到詳細(xì)的測試報(bào)告“expected:<4> but was:<3>”,這足以告訴我們問題發(fā)生在何處。下面就是你調(diào)試,測試,調(diào)試,測試...的過程,直至得到期望的結(jié)果。


主站蜘蛛池模板: 色黄网站青青草原免费 | 性网站在线观看 | 色网站免费看 | 中文字幕第315页 | 天堂资源中文官网 | 亚洲成综合人影院在院播放 | 小泽玛利亚久久一区二区三区 | 日韩欧美视频在线 | 天天天夜夜夜夜夜 | 一二三四日本视频中文 | 欧美一级视频精品观看 | 天天操天天干天天透 | 在线h观看 | 一本草久 | 日本性欧美 | 伊人五月婷 | 亚洲欧美综合一区二区三区四区 | 青草国产视频 | 亚洲国产中文字幕 | 日产精品久久久一区二区 | 日本不卡免费新一二三区 | 天天摸天天干 | 色播欧美 | 伊人久久大香线蕉免费视频 | 一级毛片一级毛片一级毛片一级毛片 | 亚洲午夜国产精品 | 日本大片免a费观看视频+播放器 | 五月婷婷综合在线视频 | 特黄特a级特别特级特毛片 特黄视频免费看 | 羞羞人成午夜爽爽影院 | 日韩一级影院 | 午夜视频在线免费观看 | 亚洲 欧美 自拍 另类 欧美 | 五月婷婷激情综合网 | 午夜激情视频在线观看 | 亚洲精品视频网 | 亚洲人成在线播放网站 | 日本理论片免费观看在线视频 | 五月婷婷之婷婷 | 亚洲精品午夜久久aaa级久久久 | 欧美一级久久久久久久大片 |