List가 특정한 기준으로 정렬할 때 보통, Comparator 인터페이스를 사용하여 정렬 기준을 지정한다.
// List를 정렬할 Comparator
Comparator<String> comparator = (s1, s2) -> s1.compareTo(s2);
// List를 정렬
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("cherry");
list.sort(comparator);
이제, List가 특정한 기준으로 정렬되었는지 확인하려면, 다음과 같이 assert 메소드를 사용하여 비교하면 된다.
// List가 특정한 기준으로 정렬되었는지 확인
assertThat(list).isSortedAccordingTo(comparator);
assertThat() 메소드를 사용하여 List를 비교하고,
isSortedAccordingTo() 메소드를 사용하여 정렬 기준(comparator)에 따라 정렬되어 있는지 확인한다.
만약, List가 정렬되어 있지 않다면, 해당 assert 문에서 AssertionError 예외가 발생한다.
assertThat(list).isSortedAccordingTo((o1, o2) -> o1.compateTo(o2));
역순인지 검증하려면?
assertThat(list).isSortedAccordingTo((o1, o2) -> o2.compareTo());
요소로 검증하려면?
//ASC
assertThat(list).isSortedAccordingTo(Comparator.comparing(Date::getCount()));
// DESC
assertThat(list).isSortedAccordingTo((o1, o2) -> o2.count().compareTo(o1.count()));
'테스트 > JUnit' 카테고리의 다른 글
변하는 값을 테스트 하는 방법(LocalDateTime, UUID, Random) (0) | 2023.03.21 |
---|---|
Mockito Stub 작성 시 주의 사항 (0) | 2023.01.28 |
Mock vs. Stub vs. Spy (0) | 2023.01.28 |
Java Collection, List, Array 비교, 검증 (0) | 2023.01.25 |
@WebMvcTest Security 401 403 응답 해결방법 - csrf (0) | 2023.01.25 |