cucumber java 搭建_intelj idea cucumber java搭建教程

intel j idea cucumber java搭建教程

Cucumber 是一个能够理解用普通语言 描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和.Net等多种开发语言。

142579835_1_20180828023349470.png

142579835_2_20180828023350955.png

cucumber是非常重要的,那么如何在java中正确使用cucumber呢?

inteljidea是一款非常棒的java编辑器,那么在idea中如何搭建cucumber环境呢?

首先需要新建一个maven工程,我在新建的时候最初建立的是webapp。但是在添加cucumber的时候出现了问题,因为目录结构不正确。后来索性就直接建立了一个普通的maven工程。注意要有src main目录和 test目录。以下是我的目录结构;

e3f3fa39e0096dbe6db2b93db5f7cb6a.png

注意,setp_definations需要放在test/java下的一个子目录下边,feature文件放在resourse下边。这样,intelj就能够认出feature文件,并且能把feature和step_defination文件相关联起来。

maven中需要加入cucumber的相关jar包,以下为基本所需要的一些jar包:

info.cukes

cucumber-java

test

1.2.4

info.cukes

cucumber-jvm

1.2.4

pom

junit

junit

4.12

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

junit为非必需,但是在判断案例是否运行成功的时候最好使用junit来进行判断一下。

接下来新建feature文件。在新建完feature文件之后,直接右击鼠标,应该是会出现以下 几个菜单,

40925b27334e68593257174950e2c715.png

点击create,即会自动建立一个运行的server(只针对这个feature)。

在feature文件中输入内容,如下:

Feature: Mernagria

Scenario: registe new pet

Given I am on the "new pet" page

And I click the "registe" button

Then I should go to the "register" page1

2

3

4

5

6

这个时候,直接运行这个server会出现以下问题,undefined step

995ff57d2a90f24075bc98db960d06c6.png

提示我们需要建立step_defination了。

这个时候可以使用cucumber的工具,直接建立相关的step_defination,光标指在某一行,然后点击alt+enter键(代码提示键),则会提示以下内容:

9d6d1ac05635b586153bcf670ccd0fdd.png

之后则可以直接

2e520e4c1c9810d0049c56e718685126.png

建立新文件,如果你以前建立过java类,但是在这个时候看不到以前的类,不用多想了,肯定是你的工程环境出现问题了。

在新建完java类之后,截图如下:

3d014ca8cd0f0ef34ed0ed9010ef8187.png

重新运行一下程序,这个时候如果仍然出现上边这种情况,即unddfined step

995ff57d2a90f24075bc98db960d06c6.png

这个情况证明我们的工程是有问题的,问题在哪里呢?

点击右上角的server,点击edit configrations

8d6a954f8c3eade8ea66c685de1a714e.png

这个时候,底部有提示,glue目录需要填写相应的信息,但是我们点击后边的。。。之后发现依然是空白的,这里究竟应该填什么呢?

这里应该直接填入step_defination的目录,即你新建的java类存放的目录,我这里放在了com.cucumber 目录下,所以我直接写的是com/cucumber,程序就能够正常运行了。

正常运行截图如下

97e4db651d21cbc13ad89ff51d556005.png

之后一步一步更改step_definatio文件,直到全部finish。

以下贡献两个自己写的案例,

这个是运行一个案例的。

Feature: Adding Test

Scenario: Test Add

Given i input "2" and "2"

When the calculator is run

Then the out put should be "4"1

2

3

4

5

6

这个是同时运行多个案例的

Feature: AddMuilty

Scenario Outline: test multy

Given i input "" and ""

When the calculator is run

Then the out put should be ""

Examples:

| input1 | input2 | result |

| 2 | 3 | 5 |

| 2 | 4 | 6 |

| 3 | 3 | 6 |1

2

3

4

5

6

7

8

9

10

11

这个是我写的step_defination文件

/**

* Created by Scott on 16/5/11.

*/

public class Add {

Calculator calculator;

@Given("^i input \"([^\"]*)\" and \"([^\"]*)\"$")

public void iInputAnd(String arg0, String arg1) throws Throwable {

// Write code here that turns the phrase above into concrete actions

calculator = new Calculator();

calculator.setNum1(Integer.parseInt(arg0));

calculator.setNum2(Integer.parseInt(arg1));

}

@When("^the calculator is run$")

public void theCalculatorIsRun() throws Throwable {

// Write code here that turns the phrase above into concrete actions

calculator.calculate();

}

@Then("^the out put should be \"([^\"]*)\"$")

public void theOutPutShouldBe(String arg0) throws Throwable {

// Write code here that turns the phrase above into concrete actions

assertEquals(Integer.parseInt(arg0),calculator.getTotle());

}

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

这是我写的类文件

public class Calculator {

private int num1;

private int num2;

private int totle;

public int getNum1() {

return num1;

}

public void setNum1(int num1) {

this.num1 = num1;

}

public int getNum2() {

return num2;

}

public void setNum2(int num2) {

this.num2 = num2;

}

public int getTotle() {

return num1 + num2;

}

public void calculate(){

totle = num1 + num2;

}

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值