989
技術社區[雲棲]
《Cucumber:行為驅動開發指南》——1.4 Cucumber如何工作
本節書摘來自異步社區《Cucumber:行為驅動開發指南》一書中的第1章,第1.4節,作者:【英】Matt Wynne , 【挪】Aslak Hellesy著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
1.4 Cucumber如何工作
在深入本書的核心內容之前,我們先簡要介紹一個典型的Cucumber測試集,以幫助你了解Cucumber是如何工作的。
Cucumber是一個命令行工具。運行時它會從普通語言編寫的稱為特性(feature)的文本文件中讀取你的規格說明,解析需要測試的場景(scenario),然後針對你的係統運行這些場景以達到測試的目的。每個場景由一係列步驟(step)組成,Cucumber會一步步執行這些步驟。為了讓Cucumber能理解特性文件,這些文件必須遵循一些基本的語法規則,這套語法規則就叫Gherkin。
除了特性文件,你還要為Cucumber提供一組步驟定義(step definition),它們是匹配特性文件中每個步驟的Ruby代碼,業務語言描述的步驟行為都由這些步驟定義執行。在一個成熟的測試集中,這些步驟定義自身可能隻包含一兩行Ruby代碼,具體的工作都代理給支持代碼(support code)庫來完成,應用程序領域特定的支持代碼庫知道如何執行係統的常見任務。通常這會涉及使用一個自動化庫(automation library),例如瀏覽器自動化庫Capybara,來與待測係統進行交互。
整個層次結構從特性往下至自動化庫,具體如圖1-1所示。
圖1-1 Cucumber測試棧
如果步驟定義中的Ruby代碼執行無誤,Cucumber就依次執行場景中的下一個步驟。如果場景的所有步驟執行都沒有錯誤,那麼Cucumber就將該場景標記為通過。但是,如果場景中任何一個步驟失敗了,Cucumber就會將該場景標記為失敗並轉而執行下一個場景。運行場景的時候,Cucumber打印出相應的結果,告訴你它在幹什麼,以及它沒幹什麼。
簡單來說 Cucumber 就是這麼一回事。但作為一個傑出的自動化驗收測試框架,Cucumber 還有很多其他優點:你可以使用四十多種語言編寫規格說明,可以使用標簽(tag)把場景組織和歸類,可以輕鬆集成大批高質量的 Ruby 自動化庫,來驅動幾乎任何種類的應用程序。隨著閱讀本書的其他部分,所有上述及更多的內容都將清晰地展現在你麵前。
最後更新:2017-06-06 07:33:53