gpt4 book ai didi

java - Spring 启动: inject mock into Runner class

转载 作者:行者123 更新时间:2023-12-01 17:59:23 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序和一些应用程序应该与之交互的其他组件。然而,在我的单元测试中,我只使用应用程序功能,并且我想模拟外部 API 调用。我陷入困境,因为我找不到像这样模拟案例的方法:

我的主方法开始类(class):

@ComponentScan("com.sample.application")
@SpringBootApplication
public class MyApp implements CommandLineRunner {

@Autowired
private OuterAPI outerAPI;

public static void main(String[] args) {
SpringApplication.run(AdRedirectorMain.class, args);
}

@Override
public void run(String... args) throws Exception {
outerAPI.createInstances();
}

...
}

这是我的测试类示例:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MyApp.class)
public class MyAppTest {
// any tests
}

我正在使用 Spring Boot、JUnit、Mockito。

所以,我面临着这个问题 - 如何通过反射或任何其他方式避免使用 Mockito 调用 createInstances() 方法。

最佳答案

看看Mocking and spying beans在 Spring Boot 文档中。

您可以在测试类中使用@MockBean,用 Mockito 模拟实例替换 Autowiring 的 Bean。

关于java - Spring 启动: inject mock into Runner class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com