在测试android时控制应用程序

时间:2013-03-19 06:19:08

标签: android testing

我使用Roboguice来测试应用程序。该应用有两个Modules

  • ProductionModule - 在应用程序未受测试时使用
  • TestingModule - 在测试应用程序时使用

这些模块是Injector的参数,它是在 APPLICATION OnCreate()方法中创建的。

那么,如果应用程序正在测试中,我怎么能弄清楚? 有没有办法在ActivityInstrumentationTestCase2中管理 APPLICATION 生命周期,所以我可以做一些应用之前 onCreate()方法?

PS:之后我需要测试活动,因此我使用ActivityInstrumentationTestCase2并使用自定义TestRunner生成报告。

2 个答案:

答案 0 :(得分:0)

您可以在setUp()中从JUnit向活动发送额外的参数,如下所示:

@Override
public void setUp() {
    Intent intent = new Intent();
    intent.putExtra("debug", true);
    setActivityIntent(intent);
    mActivity = getActivity();
}

在真实的Activity中你可以在onCreate()中检查它:

        Bundle extras = getIntent().getExtras();
        if(extras!=null){
            boolean is= (Boolean)extras.get("debug");
            if(is){
                // here you are in debug mode
            }
        }

答案 1 :(得分:0)

在运行任何测试之前调用create on Application,这是因为要运行测试,您的应用程序必须存在。

但是,您可以在测试中调用应用程序。您可以将applicationcontext转换为您的应用程序,然后调用onCreate方法。我过去必须这样做才能清除申请中的任何状态。