我是Android Studio中Robolectric测试的新手,当我尝试运行测试时,会出现同样的错误,指出android.content.res.Resources$NotFoundException: Unable to find resource ID #0x0 in packages
。我确保JUnit工作目录是$ MODULE_DIR $,但它仍然没有用。将testOptions.unitTests.includeAndroidResources
添加到我的build.gradle文件中也没有做任何事情。以下是测试文件的样子:
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
public class StartActivityTests {
StartActivity activity;
@Before
public void setUp() throws Exception {
activity = Robolectric.buildActivity(StartActivity.class)
.create()
.resume()
.get();
}
@Test
public void shouldNotBeNull() throws Exception
{
assertNotNull(activity);
}
@Test
public void clickingNewGame_shouldStartAvatarRoomActivity() {
StartActivity activity = Robolectric.setupActivity(StartActivity.class);
activity.findViewById(R.id.newUserButtonFirstPage).performClick();
Intent expectedIntent = new Intent(activity, AvatarRoomActivity.class);
Intent actual = ShadowApplication.getInstance().getNextStartedActivity();
assertEquals(expectedIntent.getComponent(), actual.getComponent());
}
}
请帮忙!非常感谢!
答案 0 :(得分:0)
如果您使用的是Android Gradle Plugin 3.0或更高版本,则需要使用build.gradle的android块添加以下代码段
InputRecord
或在单元测试中找不到Android资源。
答案 1 :(得分:0)
我在build.gradle文件中将SDK更改为27,并且Robolectric测试成功。