- Test-Driven Java Development(Second Edition)
- Alex Garcia Viktor Farcic
- 358字
- 2021-06-24 18:31:50
Cucumber
Cucumber was originally a Ruby BDD framework. These days it supports several languages including Java. It provides functionality that is very similar to JBehave.
Let's see the same examples written in Cucumber.
The same as any other dependency we have used until now, Cucumber needs to be added to build.gradle before we can start using it:
dependencies { testCompile 'info.cukes:cucumber-java:1.2.2' testCompile 'info.cukes:cucumber-junit:1.2.2' }
We will create the same steps as we did with JBehave, using the Cucumber way:
@Given("^I go to Wikipedia homepage$") public void goToWikiPage() { open("http://en.wikipedia.org/wiki/Main_Page"); } @When("^I enter the value (.*) on a field named (.*)$") public void enterValueOnFieldByName(String value,
String fieldName) { $(By.name(fieldName)).setValue(value); } @When("^I click the button (.*)$") public void clickButonByName(String buttonName) { $(By.name(buttonName)).click(); } @Then("^the page title contains (.*)$") public void pageTitleIs(String title) { assertThat(title(), containsString(title)); }
The only noticeable difference between these two frameworks is the way Cucumber defines steps text. It uses regular expressions to match variables types, unlike JBehave which deduces them from a method signature.
The steps code can be found in the WebSteps class in the https://bitbucket.org/vfarcic/tdd-java-ch02-example-web repository:
Let's see how the story looks when written using the Cucumber syntax:
Feature: Wikipedia Search Scenario: TDD search on wikipedia Given I go to Wikipedia homepage When I enter the value Test-driven development on a field named search When I click the button go Then the page title contains Test-driven development
Note that there are almost no differences. This story can be found in the wikipediaSearch.feature file in the https://bitbucket.org/vfarcic/tdd-java-ch02-example-web repository.
As you might have guessed, to run a Cucumber story, all you need to do is run the following Gradle task:
$> gradle testCucumber
The result reports are located in the build/reports/cucumber-report directory. This is the report for the preceding story:

The full code example can be found in the https://bitbucket.org/vfarcic/tdd-java-ch02-example-web repository.
For a list of languages supported by Cucumber or for any other details, visit https://cukes.info/.
Since both JBehave and Cucumber offer a similar set of features, we decided to use JBehave throughout the rest of this book. There is a whole chapter dedicated to BDD and JBehave.
- Learning Microsoft Windows Server 2012 Dynamic Access Control
- 國際大學生程序設計競賽中山大學內(nèi)部選拔真題解(二)
- Learning Apex Programming
- Java從入門到精通(第4版)
- Windows Server 2016 Automation with PowerShell Cookbook(Second Edition)
- 可解釋機器學習:模型、方法與實踐
- 零基礎學Python網(wǎng)絡爬蟲案例實戰(zhàn)全流程詳解(入門與提高篇)
- Learning R for Geospatial Analysis
- RESTful Java Web Services(Second Edition)
- 編程改變生活:用Python提升你的能力(進階篇·微課視頻版)
- 軟件工程與UML案例解析(第三版)
- MongoDB Cookbook
- MongoDB Administrator’s Guide
- 量子計算機編程:從入門到實踐
- HTML5+CSS3+jQuery Mobile+Bootstrap開發(fā)APP從入門到精通(視頻教學版)