【发布时间】:2014-07-16 02:33:59
【问题描述】:
如何解决此 Robolectric 测试中的上述错误?请注意,我在 Android Studio Beta 0.8.2 中运行我的测试。我在测试中发现了 Gradle Robolectric Resources NotFoundException,这表明我需要使用 @Config 注释来指定 AndroidManifest。但是,Android Studio 通过将构建类型中的内容与main 合并来生成最终清单。那么还有什么其他的建议可以解决这个错误呢?
@RunWith(RobolectricTestRunner.class)
public class MainActivityTest {
private MainActivity mActivity;
@Before
public void setUp() {
mActivity = Robolectric.buildActivity(MainActivity.class).create().visible().get();
}
@Test
public void testActivityNotNull() {
assertThat(mActivity).isNotNull();
}
@Test
public void testBaseballCardDetails() {
FragmentManager fm = mActivity.getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag(FragmentTags.EDIT_CARD);
assertThat(fragment).isNotNull().isAdded().isVisible();
}
}
堆栈跟踪:
android.content.res.Resources$NotFoundException: Resource ID #0x7f0d0002
at android.content.res.Resources.getValue(Resources.java:1118)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:2304)
at android.content.res.Resources.getLayout(Resources.java:934)
at android.support.v7.internal.view.SupportMenuInflater.inflate(SupportMenuInflater.java:115)
at bbct.android.common.activity.MainActivity.onCreateOptionsMenu(MainActivity.java:84)
抛出异常的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.getMenuInflater().inflate(R.menu.main, menu); // Line 84
return super.onCreateOptionsMenu(menu);
}
【问题讨论】:
标签: android unit-testing robolectric