Он пройден, если я уменьшу количество итераций до 1 (
Код: Выделить всё
numberOfItems = 1
Как только он доходит до 2-й итерации, выдается ошибка с NPE:
Код: Выделить всё
java.lang.NullPointerException: Cannot invoke "getValue()" because "arg" is null
Код: Выделить всё
@Test
public void testMy() {
int numberOfItems = 2;
List myDataList = getTestData(numberOfItems);
for (MyData md : myDataList) {
when(mockedService.someMethod(
argThat(arg -> Objects.equals(arg.getValue(), md.getMyValue())))) // NPE here on arg.getValue()
.thenReturn(getExpectedResult(md.getMyValue()));
}
List resData = testService.methodUnderTest(myDataList);
// assert... resData list has all the expected items and values
}
Код: Выделить всё
public List methodUnderTest(List myDataList) {
myDataList.forEach(myData -> {
// ... some logic ...
myData.setResult(mockedService.someMethod(new MyRequest(myData.getMyValue())));
}
});
return myDataList;
}
Изначально он проходил мимо используется примерно так
Код: Выделить всё
when(mockedService.someMethod(
argThat(hasProperty("value", equalTo(md.getMyValue())))))
.thenReturn(getExpectedResult(md.getMyValue()));

Посоветуйте, пожалуйста, что я делаю не так? Спасибо!!
Подробнее здесь: https://stackoverflow.com/questions/777 ... rexception