• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

MongoDB slice test

21.12.18 23:08 작성 조회수 714

1

학습하시는 분들이 혹여나 오류가 있을까봐 게시판에 남겨놓습니다.

spring boot 2.6버전 이상 쓰시는 분들은 테스트 코드가 오류가 날수 있습니다.

Caused by: java.lang.IllegalStateException: Set the spring.mongodb.embedded.version property or define your own MongodConfig bean to use embedded MongoDB

at org.springframework.util.Assert.state(Assert.java:76)

at org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration.determineVersion(EmbeddedMongoAutoConfiguration.java:148)

at org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration.embeddedMongoConfiguration(EmbeddedMongoAutoConfiguration.java:128)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:568)

at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)

... 159 more



해결책을 찾아보니 다음과 같이 해결해줄수 있었습니다.

@DataMongoTest
@TestPropertySource(properties = "spring.mongodb.embedded.version=3.5.5")
@ActiveProfiles("test")

spring boot 2.6이상버전 부터는 spring.mongodb.embedded.version은 자동 구성된 임베디드 MongoDB를 사용하도록 설정해야하는것 같습니다.

참고: https://stackoverflow.com/questions/70047380/excluding-embededmongoautoconfiguration-failed-in-spring-boot-2-6-0

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6-Release-Notes#embedded-mongo

혹시 에러때문에 실패하시는분들이 있으시면 참고하시면 좋을것 같습니다.
그리고 교안도 수정해주신다면 감사하겠습니다.

항상 좋은강의 만들어주셔서 감사합니다.


답변 1

답변을 작성해보세요.

0

flag326님의 프로필

flag326

2021.12.30

감사합니다.