0

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

  • ProductionModule - 在应用程序未处于测试状态时使用
  • TestingModule - 在测试应用程序时使用

这些模块是在APPLICATIONOnCreate()方法中创建的 Injector 的参数。

那么我如何才能确定该应用程序是否正在测试中?有没有办法管理APPLICATION生命周期,所以我可以在 APPLICATION 方法之前ActivityInstrumentationTestCase2做一些事情? onCreate()

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

4

2 回答 2

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
            }
        }
于 2013-03-19T14:58:17.973 回答
0

在您的任何测试运行之前调用创建应用程序,这是因为要运行测试您的应用程序必须已经存在。

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

于 2013-03-19T16:39:35.587 回答