在 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);
}
我是自动化测试的新手,使用浓缩咖啡测试我的 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);
}