Springboot Cucumber测试配置介绍详解

 更新时间:2018年04月06日 10:07:10   作者:谢天帝  
这篇文章主要介绍了Springboot Cucumber测试配置介绍详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

目前Spring-boot成为了java开发的主流框架,Cucumber作为一款支持dsl的自动化测试工具,很适合用户编写DSL优化过的单元测试等测试用例。本文将讲解如何在SpringBoot中配置Cucumber进行自动化测试。

目录结构如下:

gradle相关配置如下所示:

testCompile('org.springframework.boot:spring-boot-starter-test',
    "info.cukes:cucumber-jvm:1.1.8",
    "info.cukes:cucumber-core:1.1.8",
    "info.cukes:cucumber-java:1.1.8",
    "info.cukes:cucumber-junit:1.1.8",
    "info.cukes:cucumber-spring:1.1.8",
    'commons-io:commons-io:2.4')

src中为常见的spring代码结构,我们不再具体讲解。test文件夹中上边为自带的SpringBootTest测试框架,而demo中的内容是Cucumber框架的具体配置。

1.首先我们需要配置基本的Cucumber框架CucumberTest.java:

@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/resources")
public class CucumberTest {
}

2.接下来,我们要配置有关Spring-boot的配置,因为我们的测试框架也需要在springboot的运行下完成AbstractDefs.java:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = TestSpringMongoApplication.class)
@WebAppConfiguration
@SpringBootTest
public class AbstractDefs
{
}

3.然后,我们便开始写属于我们的DSL解析语法,可具体的测试流程TestSteps.java:

import com.tiandi.service.FaultInjectionInfoService;
import cucumber.api.java.en.And;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import org.springframework.beans.factory.annotation.Autowired;

public class TestSteps extends AbstractDefs {
  @Autowired
  private FaultInjectionInfoService faultInjectionInfoService;

  private String faultNodeId;

  @Given("^Generate testCase for \"([^\"]*)\"$")
  public void generateTestCase(String id) {
    faultNodeId = id;
  }

  @Then("^finish$")
  public void finish() {
    faultInjectionInfoService.generateTestCase(faultNodeId);
  }
}
//在这里,我们通过Autowired注入了spring中的service,并编写用户自定义的DSL来调用service中的方法执行,获得测试结果。

4.最后,我们在resources中填写具体的黄瓜测试用例,并执行。

Feature: test cucumber
 Scenario: system out print something
  Given Generate testCase for "COM-COM-F"
  Then finish

5.测试结果如图所示

绿色代表测试通过

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java在OJ时运行超时的问题解决方案

    Java在OJ时运行超时的问题解决方案

    Java语言什么都好,就是在OJ的时候真的是太慢了,今天来讲解一种让Java运行速度快速提高的方法,感兴趣的朋友一起看看吧
    2023-11-11
  • Serializable接口的作用_动力节点Java学院整理

    Serializable接口的作用_动力节点Java学院整理

    这篇文章主要为大家详细介绍了java中Serializable接口的作用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Java中MapStruct入门使用及对比

    Java中MapStruct入门使用及对比

    MapStruct是一个Java注解处理器框架,用于简化Java Bean之间的映射,本文主要介绍了Java中MapStruct入门使用及对比,感兴趣的可以了解一下
    2023-12-12
  • Java实现圆形碰撞检测

    Java实现圆形碰撞检测

    这篇文章主要为大家详细介绍了Java实现圆形碰撞检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Java基础字符编码与内存流详细解读

    Java基础字符编码与内存流详细解读

    这篇文章主要给大家介绍了关于Java中方法使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • Spring Security自定义失败处理器问题

    Spring Security自定义失败处理器问题

    这篇文章主要介绍了Spring Security自定义失败处理器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • IDEA Project不显示/缺失文件问题及解决

    IDEA Project不显示/缺失文件问题及解决

    在侧边栏的project模式下,如果发现缺少部分文件,可以尝试关闭项目,打开项目所在目录,删除目录下的.idea文件夹,然后重新打开项目即可解决
    2024-11-11
  • 浅谈SpringBoot中的Bean初始化方法 @PostConstruct

    浅谈SpringBoot中的Bean初始化方法 @PostConstruct

    这篇文章主要介绍了SpringBoot中的Bean初始化方法 @PostConstruct,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java面试常见模式问题---单例模式

    java面试常见模式问题---单例模式

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式
    2021-06-06
  • java数组排序示例分享

    java数组排序示例分享

    这篇文章主要介绍了java数组排序示例,需要的朋友可以参考下
    2014-03-03

最新评论