在 Android 上的多个浓缩咖啡测试之间切换

Toggling between multiple espresso tests on Android

我是自动化测试的新手,使用浓缩咖啡测试我的 android 应用程序。

问题是我根据特定条件有多个动态视图:

我的用户有一个布尔属性,我们称它为"isPremium"

当我点击一个按钮时,如果 isPremuim == true ,我的用户将被重定向到 FragmentA,否则他将被重定向到 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();
}

这是进行测试的正确方法吗?或者还有其他更好的方法,因为我真的不相信这个方法。

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