溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Fitnesse使用系列二

發(fā)布時(shí)間:2020-07-19 06:42:14 來源:網(wǎng)絡(luò) 閱讀:707 作者:jch_zhao 欄目:軟件技術(shù)

決策表

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

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

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

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

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

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

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

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


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI