当前位置: 首页 > 知识库问答 >
问题:

如何整合Spring Boot、Cucumber和Mockito?

苏鸿卓
2023-03-14

网上有很多方法可以将Cucumber与Spring Boot结合起来。但我也找不到如何使用Mockito。如果我使用Cucumber runner,并使用ContextConfiguration和SpringBootTest对steps文件进行注释,那么容器将注入自动连接的依赖项及其所有特性。问题是,用Mock、MockBean和injectmock注释的依赖项不起作用。有人知道它为什么不起作用,以及如何使它起作用吗?

编辑:可以用mock(Bean.class)实例化bean,而不是使用Mock注释。但是像MockBean和InjectMocks这样的功能呢?

跑步者

@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"pretty", "html:build/cucumber_report/"},
                 features = "classpath:cucumber/",
                 glue = {"com.whatever"},
                 monochrome = true,
                 dryRun = false)
public class CucumberTest {

}

台阶

@ContextConfiguration
@SpringBootTest
public class CucumberSteps
{

    @Autowired
    private Bean bean;

    @InjectMocks //doesnt work
    private AnotherBean anotherBean;

    @MockBean //doesnt work with @Mock also
    MockedBean mockedBean;


    @Given("^Statement$")
    public void statement() throws Throwable {
        MockitoAnnotations.initMocks(this); //doesnt work with or without this line
        Mockito.when(mockedBean.findByField("value"))
               .thenReturn(Arrays.asList());
    }

    //Given-When-Then   
}

共有1个答案

马华茂
2023-03-14

跑步者:

@CucumberOptions(plugin = {"pretty"}, 
                 glue = {"com.cucumber.test"},
                 features = "x/y/resources")
public class CucumberTest { 

}

在这里,我们将使用@SpringBootTest、@RunWith(SpringRunner.class)创建一个类,以开始将bean加载到spring上下文中。现在我们要模仿Spring的豆子了

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringTest {

@MockBean    
private Mockedbean mockedbean;
}

现在,我们需要将SpringBootTest注释的testclass扩展到CucumberSteps类,然后在这里自动绑定mocked bean,将获得mocked bean的实例(Mockedbean)。我们也可以自动编程并获取其他Spring引导bean的实例(TestBean)

public class CucumberSteps extends SpringTest {

@Autowired
private Mockedbean mockedbean;

@Autowired
private TestBean testBean;

}

 类似资料:
  • 我们正在使用cucumberjvm并行插件自动生成cucumber运行程序。 它会根据跑步者的数量在-1、2、3等文件夹中生成cucumber报告。a) 我想把这些报告合并成一份。b) 正如下面链接中所建议的,我已经配置了一个设置,但它并没有生成数据块报告https://github.com/temyers/cucumber-jvm-parallel-plugin/tree/master/src/

  • 本文向大家介绍详解springboot整合mongodb,包括了详解springboot整合mongodb的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍springboot如何整合MongoDB。 准备工作 安装 MongoDB jdk 1.8 maven 3.0 idea 环境依赖 在pom文件引入spring-boot-starter-data-mongodb依赖: 数据源配置 如

  • 本文向大家介绍springboot整合freemarker详解,包括了springboot整合freemarker详解的使用技巧和注意事项,需要的朋友参考一下 前提: 开发工具:idea 框架:spring boot、maven 1、pom文件添加依赖 2、新建spring web项目,会自动生成application.properties. 使用application.properties配置文

  • 主要内容:方式一,方式二 ,扫描并注册Service Bean,扫描并注册Reference Bean前言         本文由于涉及到Spring 框架内容比较多,看此篇文章的同学需要具备对Spring框架较深刻的理解。          前面提到Dubbo是一个分布式的RPC框架,我们学到了dubbo的rpc调用、网络框架netty、SPI等,这部分讲的是Dubbo是如何管理Dubbo里的Bean,Dubbo框架里主要有2种Bean,分别为: Service Bean 和Reference

  • 本文向大家介绍SpringBoot整合Redis的步骤,包括了SpringBoot整合Redis的步骤的使用技巧和注意事项,需要的朋友参考一下 1.添加配置文件: Redis.properties 设置配置类: RedisConfig 2.将对象转化为Json格式入门案例 API: MAPPER.writeValueAsString(itemDesc); 3.将对象转化为Json格式格式优化 4.

  • 本文向大家介绍spring boot整合Cucumber(BDD)的方法,包括了spring boot整合Cucumber(BDD)的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍了spring boot整合Cucumber(BDD)的方法,分享给大家,具体如下: 1、新建一个springboot工程工程结构如下: 2、添加pom依赖 2、编写service接口及其实现类 3、编写feat