【发布时间】:2019-08-06 03:29:44
【问题描述】:
我正在开发一个 MessageHandler 类,其中包含我开发的 Cache 字段,MessageHandler 被注释为@Component 并且 Cache 不是 bean。
在使用 Spring-boot-test 测试 MessageHandler 类时,我使用@Mockbean 模拟一个 MessageHandler 并尝试使用 setter 为模拟 bean 设置一个 Cache 对象。但是当我运行测试以查看 MessageHandler 是否有缓存时,我得到了 null。
我的代码如下:
@MockBean(value = HiMessageHandler.class)
MessageHandler messageHandler;
public void setUp(){
Cache cache=new Cache();
cache.offer(new HiMessage("1","1","1"));
messageHandler.setCache(cache);
}
@Test
public void testConsume() throws Exception {
setUp();
System.out.println(messageHandler.getCache());
}
我想知道如何为模拟 bean 设置一个不是 bean 的字段。
【问题讨论】:
标签: java spring-boot mockito spring-boot-test