2017-02-14 11 views
0

Я новичок в автоматическом тестировании и использую эспрессо для тестирования моего приложения Android.Переключение между несколькими тестами на эспрессо на Android

Проблема заключается в том, что у меня есть несколько динамических представлений в зависимости от определенных условий:

Мой пользователь имеет логический атрибут, давайте назовем его «isPremium»

, когда я нажимаю на кнопку мой пользователь перенаправляется FragmentA if isPremuim == true, иначе он перенаправляется на FragmentB.

теперь для моих тестов у меня есть

@Test public void testFragmentA(); 

и

@Test public void testFragmentB(); 

, но когда я запускаю мои тесты основаны на моих данных, принудительно один из двух тестов не удается.

так я должен сделать одно испытание для обоих фрагментов, как

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

@Test 
public void myGlobalTest { 

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

это правильный путь, чтобы сделать мои тесты? или есть еще один лучший способ, потому что я искренне не убежден в этом методе.

ответ

1

Было бы лучше, если бы вы установили значение для премии в начале каждого теста (true для testFragmentA, false для testFragmentB). Таким образом, вы будете знать, чего вы ожидаете и от чего зависит каждый фрагмент. Кроме того, если пользователь является глобальной переменной, вы должны сохранить его состояние в @Before и восстановить его в методе @After.

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); 
}