現在,讓我們來看看“hello world”風格的Cucumber的小例子。Cucumber測試是以擴展名為feature的純文本文件實現的,看上去像下面這樣:
Feature: Addition
I would like to add numbers with my pocket calculator
Scenario: Integer numbers
* I have entered 4 into the calculator
* I press add
* I have entered 2 into the calculator
* I press equal
* The result should be 6 0n the screen
feature的描述與實現語言無關。Cucumber測試代碼的描述是通過名為Gherkin的詞表完成的。
如果你用的是Java 8 lambda版本的Cucumber,測試的一個步驟看起來像會像下面這樣
Calculator calc;
public MyStepdef s ( ) {
Given ( "I have entered (\d+) into the calculator", (Integer i) ->
System. out . format ( "Number entered: n ", i) ;
calc.push (i) ;
});
When ("I press (\W+) ", (String op) -> {
System. out . format ( "operator entered: %n ", op) ;
calc.op (op) ;
});
Then ("The result should be (\d+) ", (Integer i) ->
System.out . format ( " result : n ", i) ;
assertThat (calc.result(),i)j
));
和以前一樣,你可以在本書源碼包中找到完整的代碼。
這只是一個簡單的例子,但它可以立刻能展現出Cucumber的長處和短處。feature的描述可讀性很好。但是你必須在測試代碼中使用正則表達式來匹配字符串。即使只是微調feature描述,你也需要去調整測試代碼。