Methode setUp in android.test.AndroidTestCase nicht verspottet

7

Ich versuche, mich mit der neuen Komponententestfunktion von Android Studio zu arrangieren. Ich habe die Anweisungen auf Ссылка befolgt. Die dortige Beschreibung erwähnt ausdrücklich den Fehler "Methode ... nicht gespottet" und schlägt vor, Folgendes in build.gradle :

zu setzen %Vor%

Dies funktioniert insofern, als die Tests ausgeführt werden, wenn sie von der Befehlszeile mit

gestartet werden %Vor%

aber nicht, wenn ich die Testklasse von Android Studio mit rightclick - & gt; Lauf. Auf diese Weise bekomme ich den gleichen Fehler erneut:

%Vor%

Irgendwelche Ideen, wie man das löst?

EDIT: Der Inhalt der Testklasse spielt keine Rolle, da das Setup des Tests fehlschlägt. Ich habe es mit der einfachsten Klasse versucht:

%Vor%

Es wurde auch versucht, setUp zu überschreiben, das macht keinen Unterschied.

    
asco 27.02.2015, 09:14
quelle

3 Antworten

7

Das neue Feature Unit Tests in Android Studio täuscht das gesamte Android-SDK vor , sodass Sie schnelle Tests nur mit Java ausführen können, ohne dass Sie Ihre Anwendung auf einem Android-Gerät installieren müssen (ähnlich) zu Robolectric). Die allgemeine Idee ist, dass Sie alle Antworten aus den Android SDK-Aufrufen verspotten.

AndroidTestCase wird verwendet, um einen Test mit dem echten Android SDK auszuführen.

Ihr Problem ist also, dass Sie versuchen, ein AndroidTestCase auszuführen, das vom Android SDK abhängt, aber Ihr Test-Runner startet die Unit Tests -Umgebung, die ein gefälschtes Android-SDK anstelle eines echten verwendet.

Sie müssen einen Ansatz wählen. Wenn Sie einen reinen Komponententest wünschen, sollten Sie wahrscheinlich eine JUnit 4-Testklasse anstelle eines AndroidTestCase verwenden. Weitere Anweisungen hier: Ссылка

    
Dan J 26.06.2015, 13:08
quelle
10

Von: Ссылка

  

Die android.jar-Datei, die zum Ausführen von Komponententests verwendet wird, enthält nicht   jeden tatsächlichen Code - das wird von dem Android-System Bild auf real zur Verfügung gestellt   Geräte. Stattdessen werfen alle Methoden Ausnahmen (standardmäßig). Das ist   Stellen Sie sicher, dass Ihre Unit-Tests nur Ihren Code testen und nicht davon abhängen   jedes bestimmte Verhalten der Android-Plattform (die Sie nicht haben   explizit verspottet z.B. mit Mockito). Wenn das problematisch ist, du   Sie können das folgende Snippet zu Ihrer build.gradle hinzufügen, um dies zu ändern   Verhalten:

%Vor%     
Oded Regev 21.09.2015 11:33
quelle
4

Ab der SDK-Version 24 ist AndroidTestCase veraltet

  

Diese Klasse wurde in API-Ebene 24 nicht weiter unterstützt.

     

Verwenden Sie stattdessen InstrumentationRegistry. Neue Tests sollten mit geschrieben werden   die Android Testing Support-Bibliothek .

Sie sollten das Espresso-Framework für UI-Tests verwenden. Es gibt ein Tutorial .

    
serv-inc 09.07.2016 10:13
quelle