java - 如何模拟bean的所有实例
问题描述
在我尝试使用 spring-boot-starter-test 测试多线程应用程序后:
APIConnector apiConnector1 = (APIConnector) applicationContext.getBean("test");
APIConnector apiConnector2 = (APIConnector) applicationContext.getBean("test");
APIConnector apiConnector3 = (APIConnector) applicationContext.getBean("test");
这是测试 bean 代码:
@Component("test")
@Scope("prototype")
public class Test {}
APIConnector 的第一个实例是模拟的,但所有其他新 bean 都是真实的类实例。
@Profile("test")
@Configuration
public class APIConnectorTestConfiguration {
@Bean
@Primary
public APIConnector apiConnectorTest() {
APIConnector mock = mock(APIConnector.class);
when(mock.test(anyString(), anyDouble(), anyDouble()))
.thenReturn(true);
}
解决方案
推荐阅读
- python - 使用 Python 在 Windows 文件打开对话框(由桌面应用程序启动)中指定文件
- kotlin - RxKotlin "withLatestFrom(...)" 编译错误:没有足够的信息来推断类型变量 R
- javascript - 在 IE 11 中未调用绑定粘贴事件
- celery - Celery + SQS - 使用“queue_name_prefix”写入错误的队列
- apache - 无法使用另一个应用程序(Cognos)连接到 LDAP 服务器 - DN 不正确?
- aws-appsync - 为什么我只看到 1 条记录而不是 2 条记录?
- c++builder - 在编译器消息中打印数值
- c++ - 跨翻译单元的静态 constexpr 定义
- python - 简化坐标列表
- modal-dialog - swiftUI PresentaionLink 第二次不起作用