【发布时间】:2011-02-01 18:13:29
【问题描述】:
我正在尝试测试我的 contentprovider 的 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
【问题讨论】:
标签: java android android-contentprovider