在Android上的多个咖啡测试之间切换
问题描述:
我是新来的自动化测试,并使用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();
}
是这让我测试的正确方法?或者还有另一种更好的方法,因为我很不相信这种方法。
答
如果您在每次测试开始时为溢价设置值(对于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);
}