Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用机器人分子测试基于时间的任务触发的活动跳跃?_Android - Fatal编程技术网

Android 如何使用机器人分子测试基于时间的任务触发的活动跳跃?

Android 如何使用机器人分子测试基于时间的任务触发的活动跳跃?,android,Android,其目的是:应用程序以一个持续2秒的欢迎页面(对应的WelcomeActivity)开始,然后自动跳转到主页(对应的MainActivity)。我想写一个测试来涵盖这一点,但失败了 我的测试代码如下: 我的实现代码如下: 这里的关键点更像是如何测试处理程序postDelayed任务。在编写测试时,无法获取nextStartedActivity,因为处理程序需要再延迟2分钟才能执行 假设您使用Robolectric 3,并且如果您想测试处理程序延迟操作,请尝试以下操作: @Test public v

其目的是:应用程序以一个持续2秒的欢迎页面(对应的WelcomeActivity)开始,然后自动跳转到主页(对应的MainActivity)。我想写一个测试来涵盖这一点,但失败了

我的测试代码如下: 我的实现代码如下:
这里的关键点更像是如何测试处理程序postDelayed任务。在编写测试时,无法获取nextStartedActivity,因为处理程序需要再延迟2分钟才能执行

假设您使用Robolectric 3,并且如果您想测试处理程序延迟操作,请尝试以下操作:

@Test
public void should_navigate_to_main_activity() throws Exception {
    Robolectric.setupActivity(WelcomeActivity.class);

    ShadowLooper.runUiThreadTasksIncludingDelayedTasks();

    ShadowApplication instance = ShadowApplication.getInstance();
    Intent nextStartedActivity = instance.getNextStartedActivity();
    assertNotNull(nextStartedActivity);
    String className = nextStartedActivity.getComponent().getClassName();
    assertThat(className, is(LoginActivity.class.getName()));
}
暗影活套由Robolectric提供。当您调用
ShadowLooper.runuitThreadTasksIncludingDelayedTasks()
时,它将运行所有延迟的任务


您也可以找到类似的问题。

这里的关键点更像是如何测试任务。在编写测试时,无法获取nextStartedActivity,因为处理程序需要再延迟2分钟才能执行

假设您使用Robolectric 3,并且如果您想测试处理程序延迟操作,请尝试以下操作:

@Test
public void should_navigate_to_main_activity() throws Exception {
    Robolectric.setupActivity(WelcomeActivity.class);

    ShadowLooper.runUiThreadTasksIncludingDelayedTasks();

    ShadowApplication instance = ShadowApplication.getInstance();
    Intent nextStartedActivity = instance.getNextStartedActivity();
    assertNotNull(nextStartedActivity);
    String className = nextStartedActivity.getComponent().getClassName();
    assertThat(className, is(LoginActivity.class.getName()));
}
暗影活套由Robolectric提供。当您调用
ShadowLooper.runuitThreadTasksIncludingDelayedTasks()
时,它将运行所有延迟的任务


您也可以找到类似的问题。

类似的问题与我在安装活动中遇到的空指针异常类似有帮助吗?我在安装活动中遇到空指针异常有帮助吗?
@Test
public void should_navigate_to_main_activity() throws Exception {
    Robolectric.setupActivity(WelcomeActivity.class);

    ShadowLooper.runUiThreadTasksIncludingDelayedTasks();

    ShadowApplication instance = ShadowApplication.getInstance();
    Intent nextStartedActivity = instance.getNextStartedActivity();
    assertNotNull(nextStartedActivity);
    String className = nextStartedActivity.getComponent().getClassName();
    assertThat(className, is(LoginActivity.class.getName()));
}