JUnit과 Hamcrest를 사용하여 자동화 된 테스트를하고 있습니다. 필자의 테스트를 좀 더 읽기 쉽게하기 위해 matchesSafely 메서드에서 호출하는 코드는 예외를 throw 할 수 있지만 사용자 지정 일치 프로그램을 만들고 싶습니다. matchesSafely가 throw하는 예외를 허용하지 않는 메서드 시그니처와 같은 예외를 처리하는 방법을 잘 모르겠습니다. 그림사용자 정의 Hamcrest matchers에서 예외를 어떻게 처리해야합니까?
예 :
public static Matcher<Session> hasObjectOfType(final Class<?> cls) {
return new TypeSafeMatcher<Session>() {
/* describeTo method skipped for brevity */
protected boolean matchesSafely(Session session) {
return session.provideList(cls.getName()).iterator().hasNext();
}
}
}
그래서 session.provideList이 체크 예외를 선언하고 어떻게 든 그것을 처리 할 필요가있다 여기에 무슨. 내가 뭔가를이 처리하지만 어쩌면 내가 내려다 보이는거야의 두 가지 방법을 참조하십시오
- 캐치 체크 예외를 한 후 발생하는 런타임 예외를 포장.
- 확인 된 예외를 catch하고 false를 반환합니다. 현실에서는 TypeSafeDiagnosingMatcher를 사용하고 있습니다. 그래서 여기서는 불일치 설명이 두 가지 가능한 시나리오 (빈 목록 또는 예외가 발생했을 때)에 따라 달라야합니다.
예외를 처리하는 가장 좋은 방법은 무엇이 있을까요?