comment simuler une connexion à l'URL
Salut j'ai une méthode qui prend un URL comme entrée et détermine si elle est accessible.
Voici le code pour que:
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;
}
Je veux unité de test de la isUrlAccessible() la méthode à l'aide de PowerMockito
. Je sens que je vais devoir utiliser whenNew()
pour se moquer de la création de URL
et la quand url.openConnection()
est appelé, de retour d'une autre maquette HttpURLConnection
objet. Mais je ne suis pas sûr de savoir comment mettre en œuvre? Suis-je sur la bonne voie? Quelqu'un peut-il m'aider dans la mise en œuvre de cette?
Pour ce que ça vaut, je vous conseille de prendre un bon coup d'oeil dur à JMockit (jmockit.github.io) et ensuite voir si vous pouvez désactiver l'option--je ne pouvais pas et c'est mon aller à la moquerie cadre depuis.
OriginalL'auteur Nemin | 2014-08-15
Vous devez vous connecter pour publier un commentaire.
Trouvé la solution. Première maquette de l'URL de la classe, puis se Moquer de l'HttpURLConnection et lorsque l'url.openconnection() est appelée, le retour de ce moqué de HttpURLConnection objet, et enfin définir son code de réponse pour 200. Voici le code:
PowerMockito.when(u.openConnection()).thenReturn(huc);
, en disant AbstractMethodError.ne fonctionne pas pour moi non plus... je reçois: java.net.MalformedURLException: pas de protocole
Je reçois le même que rd22, AbstractMethodError...
je reçois aussi des AbstractMethodError .... des solutions à ce problème?
moi aussi..........
OriginalL'auteur Nemin
Vous pouvez vous moquer de nouvelles Url de l'instance avec
Assurez-vous de retourner créée précédemment l'objet fantaisie à partir de ce whenNew appel.
Ensuite, vous pouvez ajouter un comportement à votre fantaisie que vous le souhaitez.
OriginalL'auteur Sezin Karli
Afin de se moquer de java.net.URL de la classe par le biais de
mockito
de la bibliothèque, vous devez effectuer les étapes suivantes:mock-maker-inline
du texte dans le fichier.code:
OriginalL'auteur İbrahim Gündüz
URL est la classe finale. Pour se moquer de finale de la classe, nous pouvons utiliser PowerMockito avec Junit.
Pour se moquer de finale de la classe, nous avons besoin d'annoter la classe de Test avec l'annotation @RunWith(PowerMockRunner.class) et @PrepareForTest({ URL.class })
Mais dans la ligne PowerMockito.quand(url.openConnection()).thenReturn(huc); erreur suivante est générée:
Afin de se débarrasser de cette erreur, nous pouvons modifier notre classe de Test comme indiqué ci-dessous:
Visite: https://programmingproblemsandsolutions.blogspot.com/2019/04/abstractmethoderror-is-thrown-on.html
OriginalL'auteur Pranab Thakuria