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.测试结果如图所示

绿色代表测试通过

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

您可能感兴趣的文章:

  • spring boot整合Cucumber(BDD)的方法
(0)

相关推荐

  • spring boot整合Cucumber(BDD)的方法

    本文介绍了spring boot整合Cucumber(BDD)的方法,分享给大家,具体如下: 1.新建一个springboot工程工程结构如下: 2.添加pom依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

  • 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", "i

  • SpringBoot多环境配置教程详解

    目录 一.为什么要配置多环境 二.如何进行多环境配置呢 1.针对 yaml 配置文件 2.针对 properties 配置文件 三.命令行启动参数 第一步:打包项目 第二步:输入命令行 补充内容 一.为什么要配置多环境 当我们工作开发真实的项目时,可能会遇到不同的环境,如:开发环境.生产环境.测试环境等,不同的环境所需要的配置内容也会不尽相同,如果我们每次切换环境时再去配置对应的环境配置,肯定会降低我们的开发效率,所以,掌握多环境配置还是非常有必要的. 二.如何进行多环境配置呢 我们还是以配置端

  • SpringBoot热部署配置方法详解

    目录 前言 手动启动热部署 热部署种类 手动进行热部署 自动启动热部署 热部署范围配置 热部署的关闭 总结 前言 我们在了解一个东西的时候,总是喜欢问的就是为什么要?就是为什么我们需要这个,至少你要告诉我用这个的好处是什么:知道了需求然后学习,效率会好一些. 所以,我们为什么要学习热部署?想象一下这个情况,我们在开发的过程中,每次修改都要重启服务器才能够去重新部署项目,在项目较小的情况下还能忍受,但是如果做的是一个大型项目,部署一次消耗的时间成本很高. 所以热部署的作用 就是为我们免去这些时间上

  • SpringBoot server.port配置原理详解

    目录 SpringBoot server.port配置原理 1. autoConfigure 2. embed tomcat如何使用 小结一下 server.port不起作用 SpringBoot server.port配置原理 我们经常配置server.port=xxx,但其实这是一个比较复杂的过程才生效的,这次讲讲生效的过程. 1. autoConfigure 本质来源于自动配置 org.springframework.boot.autoconfigure.web.servlet.Servl

  • 轻松搞定SpringBoot JPA使用配置过程详解

    SpringBoot整合JPA 使用数据库是开发基本应用的基础,借助于开发框架,我们已经不用编写原始的访问数据库的代码,也不用调用JDBC(Java Data Base Connectivity)或者连接池等诸如此类的被称作底层的代码,我们将从更高的层次上访问数据库,这在Springboot中更是如此,本章我们将详细介绍在Springboot中使用 Spring Data JPA 来实现对数据库的操作. JPA & Spring Data JPA JPA是Java Persistence API

  • prometheus监控springboot应用简单使用介绍详解

    对于springboot应用,需要以下几个步骤 springboot应用开启endpoint,添加actuator的以来和promethus的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> &

  • SpringBoot使用Mybatis-Generator配置过程详解

    :> 使用Spring initialier 需要配置文件 POM文件 复制代码 代码如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <group

  • SpringBoot JPA使用配置过程详解

    JPA是什么? JPA(Java Persistence API)是Sun官方提出的Java持久化规范. 为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据. 它的出现是为了简化现有的持久化开发工作和整合ORM技术. 结束各个ORM框架各自为营的局面. JPA 其实是一种规范,它的实现中比较出名的是 Hibernate 框架: 1.pom 引入依赖: <dependency> <groupId>org.springframework.boot</gr

  • Mockito 结合 Springboot 进行应用测试的方法详解

    Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试:Spring Boot可以跟BDD(Behavier Driven Development)工具.Cucumber和Spock协同工作,对应用程序进行测试. 在web应用程序中,我们主要是对Service层做单元测试,以前单元测试都是使用 junit4 ,对Controller层做集成测试或者接口测试,对Controller层的测试一般有两种方法:(1)发送htt

  • SpringBoot DataSource数据源实现自动配置流程详解

    目录 一.重点概念 1.什么是DataSource数据源 2.数据库连接池 二.导入依赖 三.分析自动配置 1.DataSourceAutoConfiguration类 2.DataSourceTransactionManagerAutoConfiguration类 3.JdbcTemplateAutoConfiguration类 4.JndiDataSourceAutoConfiguration类 5.XADataSourceAutoConfiguration类 四.代码样例 一.重点概念 1

随机推荐