Это фиктивный код с тестом (junit5 + mockito). Как заставить возвращать ожидаемый список значений в модульном тесте? Я пытаюсь использовать spy (), mock (), но не получаю ожидаемого значения или иногда получаю исключение с нулевым указателем.
class A {
}
public interface B {
public List<A> f1();
}
class X {
B o1;
public X(B y) {
o1 = y;
}
protected void x() {
List<A> results = m1();
// ...
}
protected List<A> m1() {
return o1.f1();
}
}
class XTest {
@Mock
private static B b;
@BeforeAll
public static void setUp() {
b = org.mockito.Mockito.mock(B.class);
}
@Test
public void t1() {
X s = spy(new X(b));
A p = new A();
A r = new A();
List<A> c = Arrays.asList(p, r);
when(s.m1()).thenReturn(c); // how to enforce m1() to return c ?
}
}