2017-02-14 41 views
0

我是新来的自动化测试,并使用espresso来测试我的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

如果您在每次测试开始时为溢价设置值(对于testFragmentA为true,对于testFragmentB为false),那将是最好的。这样你就会知道你期待什么以及每个片段依赖于什么。 另外,如果用户是某个全局变量,则应该将其状态保存在@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); 
}