所以我有类似这样的代码
Class JobSearchService() {
private SearchSetUpImpl searchSetUp;
...
SearchIndex si = generateIndexes(id);
Job jobs = si.readJobs(keyWord); // <-- si is null , null pointer exception....
...
}
private Job generateIndexes(Id id) {
...
}
我想使用powerMock返回作业,但它总是为si返回null。
在我的测试中我有
PowerMockito.when(JSS, PowerMockito.method(JobSearchService.class,
"generateIndexes", WorkId.class))
.withArguments(id)
.thenReturn(si);
如何编写下一个跳过的程序或返回正确的作业而不打空值?
我也嘲笑了SearchIndex si = Mockito.mock(SearchIndex.class);
答案 0 :(得分:0)
为什么不将SearchIndex包装到您自己的类中。
class JobReader {
Job readJobs(Id id, String keyWord) {
SearchIndex si = generateIndexes(id);
return si.readJobs(keyWord);
}
}
然后您可以在没有PowerMock的情况下模拟JobReader。只需将它注入您需要使用它的任何地方。