2011-02-01 3 views
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

답변

관련 문제