Я пытаюсь протестировать метод getType моего контент-провайдера, особенно когда передается недопустимый uri. В настоящее время я выкидываю исключение IllegalArgumentException, но в моем тесте не возникает исключение.
Вот мой тест
public void testIllegalArgumentExceptionThrownForInvalidUri() {
Uri badUri = Uri.parse("content://" + NoteProvider.AUTHORITY + "/somethingelse");
try {
String type = mockResolver.getType(badUri);
fail("No exception thrown");
} catch (Exception ex) {
assertEquals(IllegalArgumentException.class, ex.getCause().getClass());
}
}
и реализация getType
@Override
public String getType(Uri uri) {
switch (uriMatcher.match(uri)) {
case URI_NOTES:
return Notes.CONTENT_TYPE;
case URI_NOTE_ID:
return Notes.CONTENT_ITEM_TYPE;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
}
Я прошел через это и вижу, что генерируется исключение, но в тесте вызывается метод fail () вместоблок catch.
MockContentResolver глотает исключения?
Отказ от ответственности: Я новичок в android и java, хотя уже несколько лет кодирую в C #,так что я могу делать что-то совершенно глупое.: D