2015-08-05 6 views
0

Поэтому у меня есть код что-то вроде этогоPowerMock Закрытый метод с нулевым указателем исключения

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, чтобы вернуть рабочие места, но он всегда возвращает нуль для си.

В моем тесте у меня есть

PowerMockito.when(JSS, PowerMockito.method(JobSearchService.class, 
    "generateIndexes", WorkId.class)) 
    .withArguments(id) 
    .thenReturn(si); 

Как написать следующую процедуру, чтобы пропустить или вернуть правильную работу, не задев нулевое значение? Я также высмеивал si SearchIndex si = Mockito.mock(SearchIndex.class);

ответ

0

Почему бы не обернуть SearchIndex в ваш собственный класс.

class JobReader { 

    Job readJobs(Id id, String keyWord) { 
     SearchIndex si = generateIndexes(id); 
     return si.readJobs(keyWord); 
    } 
} 

, а затем вы можете высмеять JobReader без PowerMock. Просто вводите его туда, где вам нужно его использовать.

Смежные вопросы