前提:已安装 idea 、 jdk 1.8
官方安装文档: https://www.jetbrains.com/help/idea/2016.1/cucumber.html?origin=old_help
1 IDEA > File > Setting > Plugins
安装Cucumber for java ; Cucumber for Groovy
2 使用maven新建工程
3 POM文件:
<dependencies>
<!-- test support library (page objects, elements, test base, ...) -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<scope>test</scope>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<scope>test</scope>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm</artifactId>
<version>1.2.5</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
4 目录结构如下:
image.png
准备工作结束,开始写第一个Cucumber测试
1 test/ersources下新建feature文件
# Created by Jane.Yao at 2020/5/22
Feature: Add Test
Scenario: Add Test
Given x is 5 and y is 6
When add x and y
Then Result is 11
2 test/java下创建Runner文件,用于执行Cucumber测试
package com.cucumber;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"pretty","json:target/cucumbr-report.json"})
public class CalculatorTestRunner {
}
3 feature文件,alt+enter, 创建step,指定step文件存放路径
image.png
image.png
4 自动生成的step文件内容
package com.cucumber;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class MyStepdefs {
@Given("^xP is (\\d+) and y is (\\d+)$")
public void xpIsAndYIs(int arg0, int arg1) {
}
@When("^add x and y$")
public void addXAndY() {
}
@Then("^Result is (\\d+)$")
public void resultIs(int arg0) {
}
}
5 填充实际操作code
package com.cucumber;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.assertThat;
public class MyStepdefs {
private Calculator calculator;
private int result;
@Given("^xP is (\\d+) and y is (\\d+)$")
public void xpIsAndYIs(int arg0, int arg1) {
this.calculator = new Calculator(arg0, arg1);
}
@When("^add x and y$")
public void addXAndY() {
result = this.calculator.add();
}
@Then("^Result is (\\d+)$")
public void resultIs(int arg0) {
assertThat(result, equalTo(arg0));
}
}
6 运行runner文件,看与期望结果是否一致
image.png
7 附:Calculator文件内容
package com.cucumber;
public class Calculator {
private int x;
private int y;
public Calculator(int x , int y){
this.x = x;
this.y = y;
}
public int add(){
return this.x + this.y;
}
}
网友评论