최근에 업무에서 JUnit으로 테스트를 진행하던 중, 갑자기 아래와 같은 에러 메시지가 발생했습니다.
java.lang.Exception: No tests found matching
확인해보니 해당 에러는 JUnit이 테스트 메소드를 찾지 못할 때 발생하는 에러였습니다.
@Test
public static List<Map<String, Object>> convertKeysToEnglish(List<Map<String, Object>> originalList) {
//코드
return rankedList;
}
JUnit 테스트 메소드는 void 반환 타입을 가져야 한다.
JUnit은 테스트 메소드가 결과 값을 반환하지 않고, 메소드 내에서 검증(assert)을 수행하는 구조를 기대합니다. 그러나 위 코드에서는 반환 타입이 List로 되어 있어 테스트 메소드로 적합하지 않았습니다.
static 메소드에 대한 테스트는 JUnit에서 문제를 일으킬 수 있다.
JUnit은 기본적으로 인스턴스 메소드를 테스트합니다. static 메소드는 클래스에 종속되기 때문에 JUnit에서 제대로 인식하지 못해 에러가 발생할 수 있습니다.
public List<Map<String, Object>> convertKeysToEnglish(List<Map<String, Object>> originalList) {
//코드
return rankedList;
}