#java #mockito
#java #mockito
Вопрос:
Я должен издеваться BufferedReader
, чтобы возвращать значения, которые я хочу:
BufferedReader readerMock = mock(BufferedReader.class);
when(readerMock.readLine())
.thenReturn("firstLine")
.thenReturn("secondLine")
.thenReturn(null);
for (String next = reader.readLine(); next != null; next = reader.readLine())
do something...
Проблема:
readerMock.readLine(); //returns "firstLine"
readerMock.readLine(); //returns "secondLine"
readerMock.readLine(); //PROBLEM: returns "secondLine" instead of NULL
Вопрос: Как вернуться null
при третьем вызове
Ответ №1:
Работает для меня (Mockito 1.9.5):
BufferedReader readerMock = mock(BufferedReader.class);
when(readerMock.readLine())
.thenReturn("firstLine")
.thenReturn("secondLine")
.thenReturn(null);
System.out.println(readerMock.readLine());
System.out.println(readerMock.readLine());
System.out.println(readerMock.readLine());
Вывод:
Первая строка Вторая строка null