使用Mockito @Spy注释时未调用@PostConstruct

jav*_*ner 11 java spring annotations mockito

我正在使用Spring,TestNG和Mockito框架.我正在为A类编写一个单元测试,它依赖于B类.B类有一个带注释的方法@PostConstruct.

在使用TestNG为A类编写Unit测试用例时,我在测试类中使用Mockito 注释了B类的实例@Spy.我可以看到Mockito正确创建了B的实例.但是,当Mockito处理注释时,为什么 不调用@PostConstruct代码?@Spy

所以,我所做的是将代码内部移动@PostConstruct构造函数中.

有没有办法让Mockito在处理@Spy注释时执行任何"后处理"方法?

感谢任何帮助.

JB *_*zet 24

不,没有.PostConstruct是一个Spring概念.但没有禁止你在你的设置方法中调用它:

@Before
public void prepare() {
    MockitoAnnotations.initMocks(this);
    this.b.postConstruct();
}
Run Code Online (Sandbox Code Playgroud)

  • 它是javax.annotation.PostConstruct.所以它不是Spring的概念. (10认同)
  • 在PostConstruct中,在构造bean之后,您可以访问注入bean的所有依赖项以及容器中bean中设置的所有属性.在构造函数中,您没有. (4认同)