为什么在带有 espresso 的 Android Instrumentation 测试Activity Test中没有启动活动?

问题描述

我的测试班:

@RunWith(AndroidJUnit4.class)
    public class MainActivityTest {
    
        @Rule
        public ActivityScenarioRule<MainActivity> rule = new  ActivityScenarioRule<>(MainActivity.class);
        ActivityScenario<MainActivity> scenario;
    
        Context context = ApplicationProvider.getApplicationContext();
    
        @Before
        public void launchActivity() {
            scenario = ActivityScenario.launch(MainActivity.class);
            scenario.moveToState(Lifecycle.State.CREATED);
        }
    
        @Test
        public void sendLocationButton_clicked_activateLongClickToastAppear() {
            onView(withId(R.id.location_button)).perform(click());
            onView(withText("Long press it")).inRoot(withDecorView(not(is(getActivity(context).getWindow().getDecorView())))).check(matches(isDisplayed()));
        }
        
    
        @After
        public void tearDown() throws Exception {
            scenario.close();
        }
    }

错误:

java.lang.AssertionError: Activity never becomes requested state "[DESTROYED,RESUMED,CREATED,STARTED]" (last lifecycle transition = "PRE_ON_CREATE")
    at androidx.test.core.app.ActivityScenario.waitForActivityToBecomeAnyOf(ActivityScenario.java:338)
    at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:272)
    at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:195)
    at androidx.test.ext.junit.rules.ActivityScenarioRule.lambda$new$0$ActivityScenarioRule(ActivityScenarioRule.java:70)
    at androidx.test.ext.junit.rules.ActivityScenarioRule$$Lambda$0.get(Unknown Source:2)
    at androidx.test.ext.junit.rules.ActivityScenarioRule.before(ActivityScenarioRule.java:103)
    at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:46)
    at org.junit.rules.RunRules.evaluate(RunRules.java:20)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

这只是错误的一部分,因为堆栈溢出拒绝了如此庞大的代码。

我只想测试是否在单击按钮时出现 Toast。不知道发生了什么。请帮忙。提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)