我使用Roboguice来测试应用程序。该应用有两个Modules
:
这些模块是Injector的参数,它是在 APPLICATION 的OnCreate()
方法中创建的。
那么,如果应用程序正在测试中,我怎么能弄清楚?
有没有办法在ActivityInstrumentationTestCase2
中管理 APPLICATION 生命周期,所以我可以做一些应用之前 onCreate()
方法?
PS:之后我需要测试活动,因此我使用ActivityInstrumentationTestCase2
并使用自定义TestRunner
生成报告。
答案 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方法。我过去必须这样做才能清除申请中的任何状态。