Testen Sie die Android-Aktivität mit Instrumentierung und JUnit4 neu

8

Ich möchte einen Test für die Neuerstellung von Aktivitäten schreiben. Die Drehung ist optional.

Ich möchte, dass der Test in einer aktuellen Version des von Google "gesegneten" Test-Frameworks geschrieben wird. Ich bin neu im Schreiben von Tests, also möchte ich grundlegende, Mainstream-, gut unterstützte Tools lernen. Alle Test-Frameworks von Drittanbietern werden in Ordnung sein, wenn ich Grundlagen verstehe. Und da ich ein sehr einfaches, häufig vorkommendes Szenario testen möchte, sollte das Basis-Tool ausreichen, oder?

Minimaler Testcode:

%Vor%

Und Testklasse:

%Vor%

Oberhalb von code (entweder method1 oder 2) gibt logcat:

%Vor%

Meine Diagnose, korrigiere mich, wenn ich falsch liege:

  1. activity1.setRequestedOrientation verursacht die Erstellung neuer Aktivitäten in anderen Threads. Ich hoffe, es würde richtiges Bündel erhalten
  2. getInstrumentation (). waitForIdleSync (); bewirkt, dass der Test wartet, bis die neue Aktivität erstellt wurde
  3. mActivityTestRule.getActivity (); Gibt die alte Aktivitätsinstanz zurück.
  4. Ich brauche eine Möglichkeit, die in der Testregel gehaltene Aktivitätsinstanz zu aktualisieren, die zuvor gehaltene Instanz freizugeben.

Ich habe eine Antwort mit einer älteren Version des Testframeworks gefunden: Instrumententest für Android - Wie erhält man eine neue Aktivität nach einer Orientierungsänderung?

%Vor%

Aber ich weiß nicht, wie man es in eine neue Version übersetzt.

BEARBEITEN:

Beide obigen Methoden belassen die Aktivität im zerstörten Zustand: assertFalse (mActivityTestRule.getActivity (). isDestroyed ()); schlägt fehl.

Ich habe eine andere Methode gefunden ( Zerstöre und starte die Aktivität mit der Test-Support-Bibliothek neu ), die die Aktivitätsinstanz neu erstellt, ihren Status jedoch nicht über onSaveInstanceState

behält     
MateuszL 27.02.2017, 09:51
quelle

1 Antwort

0

Ich habe endlich funktionierende Lösung hier gefunden: Aktuelle Aktivität in Espresso android erhalten

Nach der Anpassung an meine Bedürfnisse sieht der Code so aus:

%Vor%

und wird so verwendet:

%Vor%

Ich habe das mit Bibliotheksversionen arbeiten:

%Vor%     
MateuszL 16.03.2017, 05:52
quelle