2017-05-02 4 views
1

Ich versuche, meine Aktivität am Leben zu erhalten, nachdem ein bestimmter Test mit AndroidJUnit4 beendet wurde. Der Grund, warum ich das machen möchte, ist, dass ich manchmal nur sehen möchte, wie die UI aussieht und wie sich die Haptik anfühlt. Für solche Zwecke möchte ich nicht die gesamte App erstellen und zu den gewünschten Websites navigieren.AndroidJUnit4 Test: Aktivität aktiv halten

Ich habe gelesen, dass es möglich ist, die tearDown() zu überschreiben, um das Schließen der Aktivität zu verhindern.

Obwohl die InstrumentationTestCase veraltet ist und Android schlägt vor, die InstrumentationRegistry zu verwenden, und neue Tests sollten mit dem neuen Testing Support Library geschrieben werden.

Wie funktioniert es, um die Aktivität am Leben zu erhalten, nachdem der Test mit dieser neuen Bibliothek beendet wurde?

Antwort

0

Ich fand eine Lösung, die für mich funktioniert. Wenn Sie bessere Vorschläge haben, lassen Sie es mich wissen.

AndroidJUnit4 hat trissDown und setUp, obwohl es keine Überschreibung ist. Es muss mit einer Anmerkung implementiert werden:

@Before 
public void setUp() throws Exception { 
    //do something 
} 

@After 
public void tearDown() throws Exception { 
    //do something 
} 

Um die Aktivität am Leben, nachdem der Test bestanden zu halten, habe ich den Thread warten in der tearDown Methode lassen:

@After 
public void tearDown() throws Exception { 
    synchronized (this) { 
     wait(); 
    } 
} 

Wenn Sie gerne aufwachen den Thread nach einer bestimmten Zeit (aber ich würde vorschlagen, Thread.sleep() in diesem Fall zu verwenden) oder wenn Sie einen Weckruf auslösen möchten, können Sie den synchronisierten Block leicht mit einer Sperre kombinieren.

Verwandte Themen