Я настроил модульные тесты robolectric для своего приложения и столкнулся с проблемой с целочисленными и логическими ресурсами, определенными в XML. У меня есть тесты в отдельном проекте, но я установил рабочий каталог для тестируемого проекта, как описано в этот ответ. Кажется, что Robolectric правильно находит некоторые ресурсы, потому что getString(...)
и getDrawable(...)
работают нормально. Однако getBoolean(...)
и getInteger(...)
терпят неудачу с Resources$NotFoundException
.
Я упростил один из тестов, чтобы воспроизвести поведение:
@Test
public void testResources() {
TestActivity activity = controller.get();
String theString = activity.getString(R.string.ab_request); // works
Drawable theDrawable = activity.getResources().getDrawable(R.drawable.ab_back); // works
boolean theBool = activity.getResources().getBoolean(R.bool.isRelease); // fails
int theInt = activity.getResources().getInteger(R.integer.act_noNetwork); // fails
}
Это известная ошибка Robolectric? Я искал некоторое время и не нашел никого с такой же проблемой.
Обновление Кажется, это как-то связано с моей папкой res
. Я начал с нового проекта Android и одного теста выше. Затем я добавил зависимости своего проекта: тест все еще выполнялся. Я скопировал свою папку res
в новый проект: тест не прошел.