测试Spring Boot命令行应用程序

提比略:

我想测试我的Spring Boot命令行应用程序。我想模拟某些bean(可以通过@ContextConfiguration(classes = TestConfig.class)在测试类的顶部进行注释来实现。在中TestConfig.class,我覆盖了我想模拟的bean。我想Spring Boot找到其余的组件。这似乎有效。

问题是,当我运行测试时,整个应用程序将正常启动(即,该run()方法被调用)。

@Component
public class MyRunner implements CommandLineRunner {

    //fields

    @Autowired
    public MyRunner(Bean1 bean1, Bean2 bean2) {
        // constructor code
    }

    @Override
    public void run(String... args) throws Exception {
        // run method implementation
    }

我尝试覆盖MyRunner @Bean并将其放入中TestConfig.class,但这似乎不起作用。我知道我正在加载常规的应用程序上下文,但这就是我想做的(我认为吗?),因为我想重复使用@Component我在应用程序中创建的所有(或大部分)I,并且仅模拟一小部分。

有什么建议?

编辑:

应用程序

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
提比略:

答案比我想的要简单。在其中添加MockBean

@TestConfiguration
public class TestConfig {

    @MockBean
    private MyRunner myRunner;

}

我们可以使用@MockBean将模拟对象添加到Spring应用程序上下文中。该模拟将替换应用程序上下文中任何现有的相同类型的bean。

所以MyRunner.run()从不被调用,但是我仍然可以在应用程序中使用所有其他bean。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何关闭Spring Boot命令行应用程序

如何为Spring Boot应用程序执行命令行任务(如Rake任务)?

从命令行打包Spring Boot 2.0.0.M5应用程序时出错

使用命令行输入在 Spring Boot 应用程序中调用 Rest API

如何从docker命令行设置参数以配置Spring Boot应用程序?

在命令行上运行时Spring Boot应用程序挂起

Spring Boot应用程序:将应用程序拆分为要从命令行运行的单独任务?

从命令行运行时如何在spring boot应用程序中传递命令行参数

如何在Python中测试命令行应用程序?

如何使用JUnit在Java中测试简单的命令行应用程序

Async方法调用完成后,Spring命令行应用程序挂起

将在命令行中使用的 spring Web 应用程序

使用命令行的 Maven 的 java+spring helloworld 应用程序中的 NoClassDefFoundError

IntelliJ 如何在命令行中解析依赖项并运行 spring boot (maven) 应用程序,这是不可能的?

如何在Spring Boot应用程序中使用命令行参数读取自定义属性文件

使用java -jar \ target \ demo-0.0.1-SNAPSHOT.jar从命令行运行spring boot应用程序时出错

黄瓜测试Spring Boot应用程序

导入Vault / builtin / credential / aws会将测试标记添加到命令行应用程序

为什么使用简单的命令行在启动测试Electron应用程序时TestCafe崩溃?

带有测试的Ruby命令行应用程序的建议文件夹结构是什么?

在命令行中运行spring应用程序时无法识别的xbean名称空间映射异常

Spring Boot应用程序与Spring Cloud的集成测试

在 Playwright 中,如何通过命令行传递 baseUrl 以便我的规范文件没有我正在测试的应用程序的硬编码 url?

Spring Boot Junit测试安全的应用程序

如何对Spring Boot应用程序进行集成测试?

单元测试Spring Boot应用程序服务层

如何测试Spring Boot应用程序的日志?

测试启动Spring-boot应用程序

未运行 Spring Boot 应用程序的测试