Как я могу проверить Netword Error с помощью Mockito? - PullRequest
0 голосов
/ 14 декабря 2018

Я написал программу, которая выбирает данные из Интернета.

public class GetDataService {

  public List<String> getData()  {
    List<String> lines = new ArrayList<>();
    try {
    URL url = new URL("http://worldtimeapi.org/api/ip.txt");
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream()));
    String line;
    while ((line = bufferedReader.readLine()) != null) {
      String a = line;
      lines.add(a);
      }
      bufferedReader.close();

    } catch (IOException ex) {
      throw new RuntimeException("Can not making the request to the URL.");
    }
    return lines;
  }
}

Теперь я хочу проверить сетевую ошибку с помощью Mockito.Как мне это сделать?Кроме того, мой код хорош?Есть предложения по улучшению?

1 Ответ

0 голосов
/ 14 декабря 2018

Вы можете сделать это следующим образом:

when(mockUsingNetwork.doSomeNetworkAction()).thenReturn(new SomeNetworkError());

SomeNetworkError, например ConnectException для сокетов, например

, для вашего случая это будет что-то вроде:

    URL url = Mockito.mock(URL.class);
    when(url.openConnection()).thenThrow(new IOException());
...