[英]Mockito + Spring + @PostConstruct, mock initialization error, why is @PostConstruct called?
我有一个像这样的设置:
Bean类:
private final Map<String, String> configCache = new HashMap<>();
@PostConstruct
private void fillCache() { (...) configCache.clear();}
TestConfig类:
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
@Primary
public Bean beanMock() {
return Mockito.mock(Bean.class);
}
测试类: @Autowires
bean。
看起来当Mockito在TestConfig中创建模拟时,它会调用@PostConstruct,而后者似乎在初始化map字段之前被调用,因此会引发异常。
我的问题是:
编辑:显然,调用是在实例化之后完成的,就在Spring从Config的@Bean方法撤消bean之前
是的Mockito不调用@PostConstruct
-春天。 您说在测试中使用@Autowired
,它不是Mockito批注。
如果您打算使用@Mock
,则会发现Mockito不会调用@PostConstruct
方法。
换句话说,像这样编写测试类:
@Mock Bean myBean;
@Before
public void before() {
MockitoAnnotations.initMocks();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.