ich dieses Herstellungsverfahren haben:Mockito Uri.parse gibt immer null
public boolean onShouldOverrideUrlLoading(String url) {
boolean isConsumed = false;
if (url.contains("code=")) {
Uri uri = Uri.parse(url);
String authCode = uri.getQueryParameter("code");
mView.authCodeObtained(authCode);
isConsumed = true;
}
return isConsumed;
}
Und ich habe diese Mockito Testmethode:
@Test
public void onShouldOverrideUrlLoadingOnAuthCodeObtained(){
String code = "someCode";
boolean isConsumed = mPresenter.onShouldOverrideUrlLoading("http://localhost/?code=" + code);
verify(mView, times(1)).authCodeObtained(code);
assertEquals(isConsumed, true);
}
Aber es scheint, wenn der Code ausgeführt wird und es erreicht Uri. Parse (URL), bekomme ich einen Nullzeiger. Was vermisse ich? In der Produktion funktioniert das perfekt. Nur beim Testen gibt Uri.parse() null zurück.
Vielen Dank!
Das Problem wahrscheinlich in Uri ist, ist es wahrscheinlich in der Testumgebung schlecht initialisieren. Wir 'Uri' existiert nicht im Android SDK [' URI'] (https://developer.android.com/reference/java/net/URI.html#create (java.lang.String)). Es scheint also nicht wie eine Versandklasse, das könnte das Problem sein. Nichts, was mit Mockito zu tun hat. – Brice
@Brice Danke. Ja, das schien das Problem zu sein. Sie sollten dies als Antwort posten. Die Uri-Klasse kommt von Android. Also hat Mockito Schwierigkeiten, damit zu arbeiten. –
fertig :) Hoffe, dass geholfen hat. – Brice