【发布时间】:2018-09-25 16:25:39
【问题描述】:
为什么当我通过Mockito 注入模拟时我的@Postconstruckt 方法没有调用?
@Service
public class MyService {
public MyService() {
System.out.println("CONSTRUKTOR");
}
@PostConstruct
public void init() {
System.out.println("POST CONSTRUCT");
}
@RunWith(MockitoJUnitRunner.class)
public class Mockito1 {
@InjectMocks
private MyService service;
@Before
public void init() {
}
输出:
仅限:CONSTRUKTOR
【问题讨论】:
-
你想从这个模拟中得到什么?您是在其他地方使用此服务还是在实际测试该服务?
-
我只是想知道 mockito 如何对待@postconstruct。我期待类似的东西:CONSTRUCTOR,POST CONSTRUCT
-
它为什么要这么做?您正在模拟(例如伪造)与该对象的 Spring 驱动交互,因此
@PostConstruct的 Spring 构造甚至不适用。再说一次,你用这个模拟的目标是什么?您想测试此服务还是想在其他地方使用您的服务的模拟?
标签: java spring mocking mockito postconstruct