MongoDB를 사용하며 Test 할 때 어떻게 작업할지 고민하다가 Embedded MongoDB가 있다는 사실을 알고 적용해 보았습니다.
임베디드 MongoDB란?
임베디드 MongoDB는 테스트 환경에서 MongoDB를 별도로 설치하지 않고도 MongoDB 서버를 실행할 수 있는 라이브러리입니다.
이를 통해 단위 테스트 및 통합 테스트를 보다 간편하게 작성할 수 있습니다.
의존성 추가하기
Spring Boot 프로젝트에 임베디드 MongoDB를 추가하려면 build.gradle 파일에 다음 의존성을 추가합니다.
dependencies {
// Other dependencies...
testImplementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo.spring30x:4.6.2'
}
이 의존성은 Spring 3.x 버전과 호환되는 MongoDB 임베디드 서버를 제공합니다.
버전에 맞는 라이브러리를 사용하여 테스트 환경을 설정할 수 있습니다.
아래의 주소에서 각자 버전에 맞는 라이브러리 버전을 추가해 주세요!
https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo?tab=readme-ov-file
GitHub - flapdoodle-oss/de.flapdoodle.embed.mongo: ...will provide a platform neutral way for running mongodb in unittests.
...will provide a platform neutral way for running mongodb in unittests. - flapdoodle-oss/de.flapdoodle.embed.mongo
github.com
임베디드 MongoDB 테스트해보기
임베디드 MongoDB를 활용한 MongoDB 데이터베이스가 올바르게 설정되고, 정상적으로 수행되는지 확인해 보겠습니다.
@SpringBootTest(properties = "de.flapdoodle.mongodb.embedded.version=5.0.5")
class MoviereviewApplicationTests {
// Spring 의존성 주입 어노테이션입니다. MongoTemplate 객체를 자동으로 주입받아
// MongoDB 데이터베이스와 상호작용할 수 있게 합니다.
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void test() {
// 'mongoTemplate.save()' 메서드를 호출하여 Movie 객체를 MongoDB 컬렉션에 저장합니다.
mongoTemplate.save(Movie.builder()
.title("test")
.build());
}
@Test
void contextLoads() {
}
}
properties 속성에서 'de.flapdoodle.mongodb.embedded.version=5.0.5'를 설정하여 임베디드 MongoDB의 버전을 지정하여 실행합니다.
정상적으로 실행되는 것을 확인할 수 있습니다.
'DataBase > MongoDB' 카테고리의 다른 글
[MongoDB] Map-Reduce: 대량 데이터 처리의 유연한 방법 (0) | 2024.12.29 |
---|---|
[MongoDB]Aggregation Framework: 효율적인 데이터 처리와 분석 (1) | 2024.12.27 |
MongoDB 인덱스와 인덱싱 전략 이해하기 (3) | 2024.10.31 |
[MongoDB] _class 필드 개념과 제거 방법 (0) | 2024.06.29 |
MongoDB란? (0) | 2024.06.16 |