首页 > 解决方案 > 使用 Mockito 测试 @Postconstruct

问题描述

为什么当我通过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

标签: javaspringmockingmockitopostconstruct

解决方案


因为 PostConstruct 只是弹簧概念。但是您可以手动调用 postConstruct 。

@Before
public void prepare() {
    MockitoAnnotations.initMocks(this);
    this.service.init(); //your Injected bean
}


推荐阅读