wie simulieren Sie eine URL-Verbindung
Hallo, ich habe eine Methode, die eine URL als Eingabe und bestimmt, wenn es erreichbar ist.
Hier ist der code:
public static boolean isUrlAccessible(final String urlToValidate) throws WAGNetworkException {
URL url = null;
HttpURLConnection huc = null;
int responseCode = -1;
try {
url = new URL(urlToValidate);
huc = (HttpURLConnection) url.openConnection();
huc.setRequestMethod("HEAD");
huc.connect();
responseCode = huc.getResponseCode();
} catch (final UnknownHostException e) {
throw new WAGNetworkException(WAGConstants.INTERNET_CONNECTION_EXCEPTION);
} catch (IOException e) {
throw new WAGNetworkException(WAGConstants.INVALID_URL_EXCEPTION);
} finally {
if (huc != null) {
huc.disconnect();
}
}
return responseCode == 200;
}
Möchte ich unit-Tests die isUrlAccessible () - Methode mit PowerMockito
. Ich fühle, dass ich brauchen, um den whenNew()
zu verspotten, die Schaffung von URL
und wenn url.openConnection()
genannt wird, bringe eine andere mock HttpURLConnection
Objekt. Aber ich bin nicht sicher, wie Sie dies umsetzen? Bin ich auf dem richtigen Weg? Kann mir jemand helfen bei der Umsetzung?
Für was es Wert ist, würde ich vorschlagen, dass Sie einen guten harten Blick auf JMockit (jmockit.github.io) und dann sehen, wenn Sie sich abwenden von ihm-ich konnte nicht und es war mein mocking framework seit.
InformationsquelleAutor Nemin | 2014-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung gefunden. Erste mock die URL-Klasse, dann Spotten die HttpURLConnection und wenn die url.openconnection() aufgerufen wird, geben Sie dieses verspottet HttpURLConnection-Objekt und schließlich setzen Sie Ihre response-code 200. Hier ist der code:
PowerMockito.when(u.openConnection()).thenReturn(huc);
sagen AbstractMethodError.funktioniert bei mir nicht... ich bekomme die Meldung: java.net.MalformedURLException: no protocol
Ich bekomme das gleiche wie rd22, AbstractMethodError...
ich bekomme auch AbstractMethodError .... Lösungen für dieses problem?
mich auch..........
InformationsquelleAutor Nemin
Können Sie mock-neue Url-Instanz mit
Stellen Sie sicher, Rückkehr auf ein zuvor erstelltes mock-Objekt aus, whenNew nennen.
Dann können Sie das Verhalten Ihrer spotten, wie Sie wollen.
InformationsquelleAutor Sezin Karli
In Ordnung zu verspotten java.net.URL-Klasse durch
mockito
Bibliothek, müssen Sie die folgenden Schritte ausführen:mock-maker-inline
text in die Datei.code:
InformationsquelleAutor İbrahim Gündüz
URL Finale Klasse. Zu mock Letzte Klasse, die wir verwenden können, PowerMockito mit Junit.
Zu mock Letzte Klasse, die wir brauchen, um kommentieren Testklasse mit @RunWith(PowerMockRunner.class -) und @PrepareForTest({ URL.class })
Aber in der Zeile PowerMockito.wenn(url.openConnection()).thenReturn(huc); folgenden Fehler geworfen:
Um loszuwerden, diese Fehler, die wir ändern können, unsere Test-Klasse, wie unten gezeigt:
Besuchen: https://programmingproblemsandsolutions.blogspot.com/2019/04/abstractmethoderror-is-thrown-on.html
InformationsquelleAutor Pranab Thakuria