使用Mockito进行模拟时,无法调用使用@PostConstruct注释的方法

时间:2018-04-13 12:56:29

标签: java mocking mockito postconstruct

我正在尝试使用Junit和Mockito为Repository层类编写单元测试。 我已经模拟了提供NamedParameterJdbcOperations的基类,并试图注入repo类。 在repo类中,我们从classpath上的文件加载sql查询。这是在使用@PostConstruct注释的方法中完成的。 在尝试测试repo的方法时,它无法找到或加载查询,从而抛出NullPointerException。

需要有关如何处理此类情况的帮助/建议。

PS:我不允许更改repo类的实现。

附上repo和测试类的代码以供参考。

RepositoryImpl.java

<div class="input-group date" data-provide="datepicker" data-date-start-date="0d">
    <input type="text" class="form-control" id="input_id" name="input_name" />
    <div class="input-group-addon">
        <span class="glyphicon glyphicon-calendar"></span>
    </div>
</div> 

}

RespositoryImplTest.java

 NUMTODSINTERVAL(enddate- startdate,'DAY')

}

在repo类中,抛出异常,因为query1为null。

需要帮助才能正确解决问题。

谢谢,巴鲁

1 个答案:

答案 0 :(得分:0)

@RunWith(MockitoJUnitRunner.class)

你开始用mockito启动器测试,而不是弹簧启动器。这意味着春天没有为你提供豆子。 Mockito先生对PostConstruct注释一无所知。

您可以在sturUp junit方法或测试方法中调用PostConstruct方法。