다행히 많은 테스트 코드가 깨지지는 않았으나
RestTemplate 로깅을 위해 추가한 인터셉터 쪽이 깨졌다.
"HEADERS": "({})"
=>
"HEADERS": "([])"
org.springframework.http.HttpHeaders 의 구현 방법이 바뀐 것 같았다.
즉 맵에서 배열로 바뀐 것이다.
이전 5.0 대 스프링 버전에서는 생성자가 아래와 같았다.
public HttpHeaders() {
this(new LinkedCaseInsensitiveMap<>(8, Locale.ENGLISH), false);
}
5.2.0 대 스프링 버전은 아래와 같이 바뀌었다.
public static <K, V> MultiValueMap<K, V> toMultiValueMap(Map<K, List<V>> map) {
return new MultiValueMapAdapter<>(map);
}
이것은 쉽게 바꿀 수 있는데 다음과 같은 에러가 있었다.
java.lang.IllegalStateException: Configuration error: found multiple declarations of @BootstrapWith for test class [com.tistory.payment.TiPaymentApiApplicationFunctionalTest]:
[@org.springframework.test.context.BootstrapWith(value=class org.springframework.boot.test.context.SpringBootTestContextBootstrapper),
@org.springframework.test.context.BootstrapWith(value=class org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTestContextBootstrapper)]
SpringBootTestContextBootstrapper 와 DataJpaTestContextBootstrapper 두 개가 동시에 설정이 되어 있어서 발생한 것으로 보인다.
@SpringBootTest 와 @DataJpaTest 를 같이 쓰면 위와 같은 현상이 발생한다.
@SpringBootTest 를 지워주었다.
'Programing > OpenSource' 카테고리의 다른 글
[JUnit] JUnit 4 to 5 migration (0) | 2019.05.16 |
---|---|
[Gradle] 3.4 부터 의존성 선언이 바뀌었다. (0) | 2019.05.16 |
[Gson] List 타입 추론 방법 feat Super Type Tokens (0) | 2019.05.07 |
[Lombok] @RequiredArgsConstructor 의 득과 실? (0) | 2019.04.19 |
[npm] npm이 npm을 설치하다. (0) | 2019.02.09 |