1
특히 무효 인 uri가 전달 될 때 내 contentprovider의 getType 메소드를 테스트하려고합니다. 현재 IllegalArgumentException을 발생 시키지만 예외는 발생하지 않습니다. 여기 안드로이드 ContentProvider에서 throw 된 예외를 테스트하는 방법
는() 메소드 내 테스트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());
}
}
그리고 그것을 통해 밟은 상기 예외가 발생되는 것을 볼 수
@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);
}
}
getType로 구현이지만, 테스트에 실패 catch 블록 대신 호출되고 있습니다.
MockContentResolver가 예외를 삼키고 있습니까?
면책 조항 : 나는 C#에서 몇 년 동안 코딩 했음에도 불구하고 안드로이드와 java에 익숙하다. 그래서 나는 완전히 바보 같은 짓을할지 모른다. : D