public abstract class A {
public String method1( String urlString ) {
HTTP HttpURLConnection con = getConnection(url);
.... I use con.getInpurStream() to get the data and return it...
}
public HttpURLConnection getConnection(URL url) {
URL url = new URL(urlString);
return (HttpURLConnection) url.openConnection();
}
}
public class B extends A {
public String method2(String urlString) {
return method1(urlString);
}
}
Я пытаюсь написать модульный тест для метода 2 класса B с использованием JUNIT и Mockito.
Я устал примерно так:
public class testB {
String urlString = "someValid.url";
String dummyRes = "dummy Response";
InputStream res = new ByteArrayInputStream(dummyRes.getBytes());
B mockB = Mockito.mock(B.class);
HttpURLConnection connection = Mockito.mock(HttpURLConnection.class);
Mockito.when(connection.getInputStream()).thenReturn(res);
Mockito.when(mockB.getConnection(urlString)).thenRetrun(connection);
assertEquals("dummy Response", mockB.method2("someValid.url");
}
Я продолжаю получение данных в реальном времени с этого URL-адреса вместо dummyRes.
Пожалуйста, помогите / \
Edit1:
Удалены методы stati c. И я все еще не могу издеваться над методом getConnection (), чтобы вернуть фиктивное соединение.
Edit2:
Объект создания URL перемещен в метод getConnection, чтобы избежать создания нового URL, чтобы я мог издеваться он и внес изменения в тест для этого. По-прежнему собирает значения в реальном времени.