我刚刚开始研究 Espresso 测试,但我搜索了 throw StackOverFlow 主题,但找不到满足我需求的解决方案。
我的问题的史前史:
我有很多活动的 android 应用程序。通常为应用程序的不同流创建单独的 UI 测试(每个流都需要单独的活动,所以这就是我在不同的类中实现测试的原因)。在我的情况下,背景和 UI usync 发生,这就是为什么我不能从第一个活动开始并继续进行下一个和下一个。我找到的唯一解决方案并且它确实适用于当前的应用程序 - 将空闲资源用于应用程序活动。
问题:所以 现在我想了解如何将所有这些单独的类(每个类使用自己的规则和这些规则的活动)放到功能套件中?
我的经验:
1)正面- 使用需要更改开发人员源代码的空闲资源,但套件中仍然只有一项活动:
@RunWith(AndroidJUnit4.class
public class forSeveralActs {
@Rule
public final ActivityTestRule<TargetedActivity> mTargetedActivityRule = new ActivityTestRule<>(TargetedActivity.class, true, true);`
final String username = "test@mail.com";
final String password = "12345678";
private IdlingResource mIdlingRecourse;
@Before
public void setIdleResource() {
mIdlingRecourse = mTargetedActivityRule.getActivity().getIdlingResource();
Espresso.registerIdlingResources(mIdlingRecourse);
}
@Test
public void PassPermission_and_goto_MainActivity() {
// First activity - LoginActivity
Espresso.onView(withId(R.id.activity_login_et_login))
.perform(ViewActions.typeText(username));
Espresso.onView(withId(R.id.activity_login_et_password))
.perform(ViewActions.typeText(password))
.perform(closeSoftKeyboard());
Espresso.onView(withId(R.id.activity_login_btn_login))
.check(matches(isDisplayed()))
.check(matches(isClickable()))
.perform(ViewActions.click()); …Run Code Online (Sandbox Code Playgroud)