我正在使用 holoEverywhere 对我的第一个ui测试进行编码,我想测试一个从 org.holoeverywhere.app.Activity 扩展的Activity,我有这个问题......
我试图在目标应用程序中显示此内容
并且还在单元测试项目的清单中。
java.lang.IllegalStateException:应用程序实例不是HoloEverywhere。请确保你延长课程 来自的android.test.mock.MockApplication org.holoeverywhere.app.Application at android.support.v4.app._HoloActivity.onInit(_HoloActivity.java:449)at android.support.v4.app._HoloActivity.forceInit(_HoloActivity.java:207) 在org.holoeverywhere.app.Activity.onCreate(Activity.java:227)......
这是我的代码:
public class MainActivityUnitTest extends
android.test.ActivityUnitTestCase<MainActivity> {
private MainActivity activity;
public MainActivityUnitTest () {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
Context context = getInstrumentation().getTargetContext();
Intent intent = new Intent(context,
MainActivity.class);
startActivity(intent, null, null);
activity = getActivity();
}
答案 0 :(得分:0)
问题是你的模拟应用程序(由单元测试创建)不是HoloEverywhere应用程序。在调用startActivity之前调用setApplication。这将用org.HoloEverywhere.app.Application替换使用过的android.test.mock.MockApplication。
@Override
protected void setUp() throws Exception
{
super.setUp();
setApplication(new org.HoloEverywhere.app.Application());
Intent intent = new Intent(getInstrumentation().getTargetContext(), DeclarerenActivity.class);
startActivity(intent, null, null);
}