2017-02-14 4 views
0

Ich bin neu im automatisierten Testen und Espresso zum Testen meiner Android-App.Umschalten zwischen mehreren Espresso-Tests auf Android

Das Problem ist, dass ich mehrere dynamische Ansichten in Abhängigkeit von bestimmten Bedingungen:

Mein Benutzer hat eine boolean-Attribut, nennen wir es „isPremium“

, wenn ich auf einen Knopf klicken meine Benutzer umgeleitet wird FragmentA wenn isPremuim == true, sonst wird er zu FragmentB weitergeleitet.

jetzt meine Tests Ich habe

@Test public void testFragmentA(); 

und

@Test public void testFragmentB(); 

aber wenn ich meine Tests laufen auf der Grundlage meiner Daten nicht gewaltsam einer der beiden Tests.

so sollte ich machen einen Test für beide Fragmente wie

private void testFragmentA(); 
private void testFragmentB(); 

@Test 
public void myGlobalTest { 

if(user.isPremium) testFragmentA(); 
else testFragmentB(); 
} 

ist dies der richtige Weg, um meine Tests zu machen? oder es gibt noch einen besseren Weg, denn ich bin mit dieser Methode nicht überzeugt.

Antwort

1

Am besten wäre es, wenn Sie den Wert für Premium zu Beginn jedes Tests festlegen (true für testFragmentA, false für testFragmentB). Auf diese Weise wissen Sie, was Sie erwarten und wovon jedes Fragment abhängt. Wenn der Benutzer eine globale Variable ist, sollten Sie den Status in @Before beibehalten und ihn in der @After-Methode wiederherstellen.

boolean isPremium; 

@Before 
public void init() { 
    isPremium = User.isPremium(); 
} 

@Test 
public void testFragmentA(){ 
    User.setPremium(true); 
    // test fragment A 
} 

@Test 
public void testFragmentB(){ 
    User.setPremium(false); 
    // test fragment B 
} 

@After 
public void restore() { 
    User.setPremium(isPremium); 
} 
Verwandte Themen