資源簡介
作者: [英]Matt Wynne / [挪]Aslak Hellesy
出版社: 人民郵電出版社
原作名: The Cucumber Book:Behaviour-Driven Development for Testers and Developers
譯者: 許曉斌 / 王江平
這是一本半技術(shù)書籍,雖然是測(cè)試使用,但閱讀它實(shí)在也需要一定的代碼基礎(chǔ),所以可見,測(cè)試的技術(shù)含量越來越高了:D
由于本人使用Java,所以忽略了12章以后的內(nèi)容,由于它所使用到的那些框架都是基于Ruby。
本書分為3部分:
1. 基礎(chǔ)
2. 進(jìn)階
3. 應(yīng)用
在第一部分,基礎(chǔ)篇中,介紹了Gherkin語法,Cucumber的產(chǎn)生背景與適用范圍,以及常見問題與解答。
Cucumber是一種系統(tǒng)行為的描述文件,它是活文檔,應(yīng)該時(shí)刻描述當(dāng)前系統(tǒng)的正確行為,并且能夠自動(dòng)測(cè)試。
這一特性事實(shí)上也要求在寫Cu..ber文件時(shí),務(wù)必做到用戶精準(zhǔn),不要重復(fù)場景,用書上的話來講,就是同一句話,對(duì)且只對(duì)應(yīng)系統(tǒng)中的唯一的一個(gè)行為。
Cu..ber主要用于在團(tuán)隊(duì)中進(jìn)行溝通,語言必須能通用,要通用就要求隱藏技術(shù)細(xì)節(jié),以自然語言去描述系統(tǒng)的行為,最經(jīng)典的場景如:
Given ...
When ...
Then ...
給定一定場景,當(dāng)做什么操作時(shí),會(huì)產(chǎn)生什么樣的結(jié)果。
表格的使用,Backgroud關(guān)鍵字都是為了讓特性文件能更簡潔,也更易懂和富有表現(xiàn)力。
第二部分進(jìn)階篇中,介紹了一些高級(jí)的功能,比如:
鉤子和標(biāo)簽
鉤子是指 @Before @After
這種加上實(shí)現(xiàn)方法之前,在測(cè)試開始時(shí)和結(jié)束后執(zhí)行一些特定的操作。Cu...ber的步驟是全局的,同理,@Be..這類鉤子也是全局的,Cu...ber的全局是大有深意的,因?yàn)樗J(rèn)為,特性中的所有有用步驟,只能對(duì)應(yīng)一種系統(tǒng)的行為。若需要讓其支持單個(gè)場景,則需要對(duì)在鉤子后面加上標(biāo)簽的方式。
標(biāo)簽同鉤子形式相同,可以在場景和特性關(guān)鍵詞上加標(biāo)簽。
對(duì)于特性(Feature)的標(biāo)簽,會(huì)加在每個(gè)場景上。
Cu...ber可以對(duì)一組標(biāo)簽進(jìn)行測(cè)試。
Cu...ber測(cè)試中(可以推而廣之到任何測(cè)試中),凡是有數(shù)據(jù)庫參與,需要在測(cè)試之前保證數(shù)據(jù)庫是干凈的,并且當(dāng)前測(cè)試不會(huì)遺留下數(shù)據(jù)影響到下一個(gè)測(cè)試。可以使用事務(wù)和Truncate的方式來保證這點(diǎn),實(shí)際上,只要測(cè)試環(huán)節(jié)所需要的數(shù)據(jù)都由Given中提供,則不會(huì)有問題。
第三部分講應(yīng)用 ,基本上都是基于Ruby的一些庫,但11章的命令行使用方式還是很有意義的, Cu...ber本身就是一個(gè)命令行工具,通過命令行,可以對(duì)特性文件進(jìn)行一些過濾,對(duì)輸出格式進(jìn)行定制,以及集成到持續(xù)集成中。
命令行命令可以使用幫助:--help
一些重要的命令:
--tags 過濾標(biāo)簽
--lines 指定行執(zhí)行
xxx.feature:45 指定行的另一種形式
--format 格式化輸出
如果真能把 Cucumber 用起來,用嚴(yán)肅的態(tài)度對(duì)待每一個(gè)步驟,以測(cè)試驅(qū)動(dòng)開發(fā),做出來的項(xiàng)目質(zhì)量應(yīng)該能大上一個(gè)臺(tái)階的,是個(gè)很好的工具。
代碼片段和文件信息
評(píng)論
共有 條評(píng)論