Fitnesse使用系列二

決策表

成都創(chuàng)新互聯(lián)公司是專業(yè)的新和網(wǎng)站建設(shè)公司,新和接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行新和網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

Fitnesse中提供了好幾種表格樣式,前面說(shuō)了,表格是執(zhí)行測(cè)試的關(guān)鍵。從字面看,表格描述的是測(cè)試用例;從執(zhí)行角度看,表格為后端的代碼(fitnesse里稱作fixture)提供了包名、類名、方法名和參數(shù)(僅以java為例)。

先說(shuō)測(cè)試系統(tǒng),fitnesse提供了兩種測(cè)試系統(tǒng):fit和slim。采用不同的測(cè)試系統(tǒng),表格樣式不同,代碼也不同。所以首先就要確定用哪種。fit是默認(rèn)的,是從Framework for Integrated Test工具延續(xù)過(guò)來(lái)的。如果不考慮舊代碼延用的問(wèn)題,建議還是用slim。因?yàn)閟lim在性能上要更好,而且代碼編寫(xiě)更簡(jiǎn)單。

使用slim需要在頁(yè)面加一行說(shuō)明:!define TEST_SYSTEM {slim} ,通常放在頁(yè)頂端

下面就該描述執(zhí)行代碼所依賴的類或jar包了。格式一般這樣寫(xiě):

!pathD:\software\eclipse\workspaces\MyDemo\bin\ 或

!pathD:\software\eclipse\workspaces\MyDemo\libs\*.jar(如果不指定.jar,那就去找.class文件)

在去年的版本里還需要把fitnesse自身的jar包加上:!pathD:\software\fitnesse-standalone.jar ,但是今年的版本里,我發(fā)現(xiàn)已經(jīng)不需要這句了。

決策表這個(gè)樣式的:

my demo
inputa
inputbexp?
123
8917

這個(gè)my demo就是代碼的類名了,大家知道在大多數(shù)編程語(yǔ)言里是不允許含有空格的標(biāo)識(shí)符的。那么在代碼里用my demo肯定是不行的。Fitnesse其實(shí)是這樣做的——把每個(gè)單詞首字母大寫(xiě),然后連起來(lái)。所以對(duì)應(yīng)于代碼里的類名是MyDemo,這樣一來(lái),其實(shí)這里寫(xiě)成My Demo、My demo、MyDemo效果都是一樣的。但寫(xiě)成mydemo就不行了,這只能被轉(zhuǎn)換成Mydemo,我想我說(shuō)明白了吧。對(duì)于類的全名(含包名),那就只能老老實(shí)實(shí)按正常寫(xiě)法了,比如:com.calis.zjc.MyDemo,不能有空格,否則再自動(dòng)轉(zhuǎn)成首字母大寫(xiě)就不對(duì)了。

下一行就是方法名了。Fitnesse是這樣做的——凡不是以?結(jié)尾的,都認(rèn)為是輸入方法,無(wú)返回值,方法名是set+首字母大寫(xiě)字符串,也就是說(shuō),上面表格對(duì)應(yīng)的方法名分別是:void setInputa(...)  、void setInputb(...);而以?結(jié)尾的列,則認(rèn)為是驗(yàn)證方法,無(wú)參數(shù)有返回值。對(duì)應(yīng)方法名是int exp()。何以見(jiàn)得返回值類型就是int呢,其實(shí)是不限定的。不論返回什么類型都可以和頁(yè)面上的字符做比較,這點(diǎn)比較智能(我沒(méi)有看到源代碼,但我估計(jì)是拿到返回值再統(tǒng)統(tǒng).toString(),之后和頁(yè)面上的字符串做equals的)

綜上所述:上面表格對(duì)應(yīng)的代碼為:

public class MyDemo {
	private int a,b;
	public void setInputa(int a){
		this.a=a;
	}
	public void setInputb(int b){
		this.b=b;
	}
	public int exp(){
		return a+b;
	}
}

當(dāng)我們把此頁(yè)面屬性設(shè)置為test時(shí),點(diǎn)擊那個(gè)test按鈕,系統(tǒng)就會(huì)去查找并加載這個(gè)類,然后運(yùn)行相應(yīng)的方法,也即:第一步setInputa(int a),a為1;第二步setInputb(int b),b為2;第三步exp取得返回值3和表格中的3做比較,一致,這行就是綠色的,不一致就是紅色的;然后再做第二行......,這樣就完成了兩個(gè)測(cè)試用例的執(zhí)行。(如果表格里填的不是整數(shù),那么執(zhí)行賦值方法會(huì)拋異常,這點(diǎn)也要注意)

再說(shuō)一句,執(zhí)行頁(yè)面并非只能寫(xiě)表格。完全可以寫(xiě)其他文字,不影響執(zhí)行結(jié)果。所以我們完全可以寫(xiě)一段需求說(shuō)明,跟著一個(gè)表格做驗(yàn)證;再寫(xiě)一段使用說(shuō)明,再跟寫(xiě)一個(gè)表格;描述一個(gè)缺陷,再跟一個(gè)表格......這樣,這個(gè)頁(yè)面就成了既是文檔,又是可執(zhí)行用例了??傊?,讓“文字”得以驗(yàn)證,是這個(gè)工具的亮點(diǎn)。

名稱欄目:Fitnesse使用系列二
鏈接URL:http://bm7419.com/article24/igedje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、App開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站

廣告

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

成都seo排名網(wǎng)站優(yōu)化