Nach diesem Link kann ich eine Testanwendung erstellen, die Robolectric wird automatisch in Tests eingesetzt. Ich kann das nicht zur Arbeit bringen.
Ich benutze Dagger für die Abhängigkeitsinjektion und habe Injektions-Wrapper-Klassen für Activity
und Application
erstellt. Dann erweitert jede meiner Aktivitäten die Wrapper-Aktivitätsklasse statt der einfachen alten Activity
.
Das Problem, das ich habe, ist, dass die von den Application
-Modulen bereitgestellten Abhängigkeiten in Tests nicht aufgelöst werden können und die Tests daher fehlschlagen. Dies liegt daran, dass die meisten unserer Tests nur eine Aktivität erstellen (mit Robolectric.buildActivity()
) und nicht von Application
ausgeführt werden.
Ich hatte gehofft, irgendwie den Robolectric Tester zu modifizieren, um unsere Tests unter dem Application
durchzuführen. Entweder das oder eine Testanwendung wie oben in diesem Link beschrieben.
Ich habe eine Testanwendung erstellt und bekomme immer noch dieselben Testfehler, da die Tests nicht unter dieser Testanwendung ausgeführt werden. Ich habe versucht, die Testanwendung auf verschiedene Pakete zu verschieben, aber nichts ändert sich.
Ich suche nach Ratschlägen, wie ich das machen kann, was ich will. Wäre besonders an denjenigen interessiert, die Erfahrung mit Dolch haben und wie sie sich testen.
Entschuldigung, habe ich vergessen. Um dies zu beheben, habe ich ein TestApplication
erstellt, das neben den Tests steht. Dann habe ich unsere TestRunner
(die RobolectricTestRunner
erweitert) auf:
In Robolectric 3.0 ist es wirklich einfach, Sie fügen es direkt zur Annotation @Config
hinzu.
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21,application = TestApplication.class)
public class ActivityTest {
Sie können es in der Datei org.robolectric.Config.properties
konfigurieren %Vor%Siehe Ссылка
Tags und Links android robolectric dagger