Also arbeite ich an diesem kleinen Projekt, das Dolch 2 für Abhängigkeitsinjektion und Realm als Datenbank verwendet.Komponententest Realm + Dolch 2 mit Robolectric & Mockito
Ich teste es mit Robolectric und Mockito (mit Powermock). Aus früheren Forschungen (und sehr viel Schmerz) habe ich gemerkt, dass das Testen von Realm ziemlich mühsam ist, aber in der Vergangenheit wurde es getan here.
Jetzt hat mein Projekt eine sehr ähnliche Konfiguration und Struktur wie oben beschrieben.
Wenn ich meine Unit-Tests laufen, alle von ihnen passieren mit einer Ausnahme, die mir eine sehr kryptische Nachricht gibt, die wie folgt aussieht:
java.lang.NullPointerException
at org.robolectric.internal.ShadowExtractor.extract(ShadowExtractor.java:5)
at org.robolectric.Shadows.shadowOf(Shadows.java:1190)
at org.robolectric.shadows.CoreShadowsAdapter.getMainLooper(CoreShadowsAdapter.java:37)
at org.robolectric.util.ComponentController.<init>(ComponentController.java:31)
at org.robolectric.util.ComponentController.<init>(ComponentController.java:23)
at org.robolectric.util.ActivityController.<init>(ActivityController.java:40)
at org.robolectric.util.ActivityController.of(ActivityController.java:32)
at org.robolectric.Robolectric.buildActivity(Robolectric.java:82)
at org.robolectric.Robolectric.buildActivity(Robolectric.java:78)
at org.robolectric.Robolectric.setupActivity(Robolectric.java:86)
at uk.co.placona.tradesafe.view.EditActivityTest.ActivityShouldNotBeNull(EditActivityTest.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68)
at org.powermock.modules.junit4.internal.impl
Die Codezeile auf den Fehler oben angegebenen ist:
Die Aktivität existiert und wird beim Start mit einem TradeRepository versehen.
Die fragliche Aktivität kann here zusammen mit dem Rest des Codes gefunden werden. Ich habe versucht, dies für etwa 3 Tage jetzt ohne Erfolg zu debuggen. Jeder andere Komponententest, den ich erstelle, funktioniert gut, mit Ausnahme eines Komponententests, der von einer Aktivität verwendet wird, was mich glauben lässt, dass ich etwas wirklich Offensichtliches vermisse.
Wäre glücklich, hier Fragen zu klären. Vielen Dank!
Laufen Sie es mit 'PowerMock'? –
Ja, wie Sie hier sehen können: https://github.com/mplacona/trade-safe/blob/master/app/src/test/java/uk/co/placona/tradesafe/view/EditActivityTest.java –
Yeah , schon geprüft.Es ist immer schwierig mit 'PowerMock' –