How can I check if the new activity was started

℡╲_俬逩灬. 提交于 2019-12-10 12:14:39

问题


Scenario:

  1. The user starts the app
  2. The user goes to the "CreateAccountActivity"
  3. In order to use the application the user has to enter the email and a password
  4. The user clicks "create" which switches to the next activity.

    @Test
    public void createAccountAndLogIn() {
        onView(withId(R.id.login_create)).perform(click());
        onView(withId(R.id.create_email)).perform(clearText(),typeText("xxx@gmail.com"));
        onView(withId(R.id.create_pass)).perform(clearText(),typeText("pass"));
        onView(withId(R.id.create_pass_repeat)).perform(clearText(),typeText("pass"));
        onView(withId(R.id.create_create_button)).perform(click());
    }
    

How to check, after the last line, if the new "MainActivity" was launched?


回答1:


It is possible using ActivityLifecycleMonitor ... However it will not be a "black box" approach that you are looking for.

If you want to go full black box, asserting the view on the next activity should be sufficient enough to pass a test.

Here is the same question that has more detailed explanation.

Is there any way to know if an activity has been started with Espresso?




回答2:


You can control this defining a variable in Application class. When you define a variable in Application class , variable be protected until your app kill and you can reach this variable every class in project. I think it resolves your problem.




回答3:


Have you tried using onResume() method as a quick hack in your MainActivity? Have a boolean variable which changes to true in onResume() and false in onPause().

Cheers, SSG



来源:https://stackoverflow.com/questions/35155638/how-can-i-check-if-the-new-activity-was-started

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!