当前位置: 首页 > 面试题库 >

Robotium的生命周期测试:终止和重新启动活动

奚正谊
2023-03-14
问题内容

如何重新启动使用Robotium结束的活动solo.goBack()

以下内容不会重新启动活动:(测试完成)

    solo.goBack();
    try {
    //  recreate activity here
    runTestOnUiThread(new Runnable() {
        public void run() {
        getInstrumentation().callActivityOnCreate(getActivity(), 
                              null);
        getInstrumentation().callActivityOnStart(getActivity());
        getInstrumentation().callActivityOnResume(getActivity());
        }});
    }

您如何重新启动以结尾的活动Solo.goBack()

最小的例子

要重现这样的最小测试,请创建一个项目及其测试项目:

android create project -t 1 -p testRestart -k com.testRestart -a testactivity
cd testRestart
mkdir tests
cd tests
android create test-project -m .. -p .

将Robotium jar复制到该tests/libs文件夹。将此代码粘贴到文件中testactivityTest.java

package com.testRestart;

import android.test.ActivityInstrumentationTestCase2;
import com.robotium.solo.Solo;

public class testactivityTest extends ActivityInstrumentationTestCase2<testactivity> {
    private Solo solo;

    protected void setUp() throws Exception {
    solo = new Solo(getInstrumentation(), getActivity());
    }
    public void tearDown() throws Exception {
    solo.finishOpenedActivities();
    }

    public testactivityTest() {
        super("com.testRestart", testactivity.class);

    }

    public void testDestroyAndRestart() {
        solo.goBack();
    try {
        //  recreate activity here
        runTestOnUiThread(new Runnable() {
            public void run() {
            getInstrumentation().callActivityOnCreate(getActivity(), 
                                  null);
            getInstrumentation().callActivityOnStart(getActivity());
            getInstrumentation().callActivityOnResume(getActivity());
            }});
    } catch ( Throwable t ) {
        throw new RuntimeException(t);
    }
    }
}

在测试文件夹中,执行

ant debug install
adb shell am instrument -w -e class com.testRestart.testactivityTest com.testRestart.tests/android.test.InstrumentationTestRunner

再次提出问题:如何重新启动以结尾的活动Solo.goBack()


问题答案:

正如@IHeartAndroid在他对这个机器人问题的回答中所说(我以前从未见过,@ Flavio
Capaccio在一个“ 相关问题”
的评论中有一个链接):

launchActivity("com.testRestart", testactivity.class, null);

作品。这是InstrumentationTestCase中的一个函数。



 类似资料:
  • 我在开始新活动时遇到了一些问题。在我的应用程序中,我设置了侦听意图的广播接收器(屏幕关闭)。当屏幕关闭时,我的应用程序应该开始新活动(当然在某些情况下。我没有制作垃圾邮件应用程序)。但有时不是。 我在清单中声明了活动“singleTop”,所以我也重写了“onNewIntent”方法。(我认为这很重要)但事情是这样的。 当手机进入睡眠状态并且满足某些条件时,屏幕上会出现两个图标(“我的活动”)。我

  • 我为测试函数做了简单的应用程序,如onCreate()、onStart等。每个函数都让你有自己的日志。开始测试。 null 为什么在执行应用程序时调用onResume方法?(在a中) 为什么onPause和onStop方法一起调用?(在b中) 为什么在C中调用三个方法而不是onRestart或onrestume?(c) 为什么调用onDestroy方法?(d) 附言:对不起,英语:)

  • 在我的调试中,我注意到在片段上首先调用onpause/onstart/onstop/ondestroy,然后在它的活动上调用onResume,而onResume则相反--活动的onResume在它的片段之前首先调用。 为什么活动和片段之间的onpause/onstart/onstop与onResume的顺序不同?

  • 本文向大家介绍Android活动生命周期介绍,包括了Android活动生命周期介绍的使用技巧和注意事项,需要的朋友参考一下 示例 假定具有MainActivity的应用程序可以通过单击按钮来调用Next Activity。 和 在首次创建应用程序 d / MainActivity:从主叫MainActivity的onCreate d / MainActivity:从主叫MainActivity调用

  • 主要内容:1. 需求分析,2. 测试计划创建,3. 环境设置,4. 测试用例执行,5. 缺陷记录,6. 测试周期关闭软件测试的过程也称为STLC(软件测试生命周期),其中包括测试过程的各个阶段。测试过程以精心策划和系统的方式执行。所有活动都是为了提高软件产品的质量。 下面来看看STLC的不同阶段。 软件测试生命周期包含以下阶段: 1. 需求分析 手动测试程序的第一步是需求分析。在此阶段,测试人员分析SDLC(软件开发生命周期)的需求文档,以检查客户所述的要求。在检查要求后,测试人员制定测试计划以

  • 本文向大家介绍测试生命周期模型?相关面试题,主要包含被问及测试生命周期模型?时的应答技巧和注意事项,需要的朋友参考一下 V模型、W模型、瀑布模型、 螺旋模型、敏捷H模型 软件测试流程 1、需求分析,需求评审 2、制定测试计划、计划评审 3、编写测试用例、用例评审 4、测试实施阶段、执行测试用例 按照设计好的用例、准备好的数据和制定的测试策略,实施进行具体的测试过程 5、测试评估阶段 测试总结、缺陷