feature文件大部分是文本,還有一小部分機器可讀的標記元素。由相應的測試代碼使用正則表達式去解析場景的文本。
feature文件也可以由你們團隊使用的語言來本地化。這對于不習慣用英語的人來說很有幫助。
feature需要真正的代碼來執行,所以需要用某種方式去將feature綁定到代碼。
你需要一個帶有某些注解的測試類讓Cucumber司以和JUnit -起工作
@RunWith (Cucumber.class)
@Cucumber.Options (
glue = "matangle . glue . manageUser" ,
features = " features/manageUser . feature " ,
format= (”pretty", "html: target/Cucumber‘‘}
在這個例子中,按照約定,Cucumbei測試類名都有個Step的后綴。
現在你需要把測試方法和feature場景綁定在一起,并且從feature描述中解析出參數,傳給測試方法。Java的Cucumber版本基本上都是用注解實現的。這些注解對應于feature文件中使用的關鍵字:
@Given ( " .+a user with the name ' ( .+) I ")
public void addUser (String name) {
在這個用例中,不同的輸入保存在成員變量中,直到整個用戶界面事務準備完畢。操作的順序取決于feature文件中實現的順序。
為了證明Cucumber可以有不同的實現,本書的源碼包中還有一個Clojure的例子。
到目前為止,我們已經明白,需要Selenium的一些類庫和Cucumber去運行測試
Cucumber的feature描述和我們的測試代碼類綁定在一起。