我想为我的一个应用程序编写一些自动化测试。所有功能都需要登录。
所以,我已经编写了测试,但对于每个测试,它都是进行登录并测试功能。有没有办法帮助我只登录一次然后运行所有测试?
最简单的方法是仅用一种测试方法编写所有测试。但我认为实现这一目标的方式是丑陋的。任何更干净的解决方案,测试将仅登录一次,然后运行一组测试。
以下是我的测试代码:
@RunWith(AndroidJUnit4.class)
public class AllDisabledTest {
public static final String USER_NAME = "all_disabled";
public static final String DISPLAY_NAME = "All Disabled";
public static final String PASSWORD = "1234";
@Rule
public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule<>(
LoginActivity.class);
@Before
public void loginToApp(){
onView(withId(R.id.edit_email)).perform(replaceText(USER_NAME));
onView(withId(R.id.edit_password)).perform(replaceText(PASSWORD));
onView(withId(R.id.login_button)).perform(click());
}
@Test
public void checkIfFoodItemAddedToCart(){
onData(anything()).inAdapterView(withId(R.id.menu_item_grid)).atPosition(2).perform(click());
onData(anything()).inAdapterView(withId(R.id.listview)).atPosition(0).onChildView(withId(R.id.item_name)).check(matches(withText("BLUEITEM")));
}
}
先感谢您 :)。
您可以使用带有 @BeforeClass 和 @AfterClass 注释的方法。
@RunWith(AndroidJUnit4.class)
public class AllDisabledTest {
public static final String USER_NAME = "all_disabled";
public static final String DISPLAY_NAME = "All Disabled";
public static final String PASSWORD = "1234";
@Rule
public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule<>(
LoginActivity.class);
}
@BeforeClass
public static void setUpBeforeClass() {
// do login stuff here
}
@AfterClass
public static void tearDownAfterClass() {
// ...
}
// ...
}
注意:@BeforeClass 和 @AfterClass 方法必须是静态的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)