programing

유닛 테스트를 위한 mongodb mockup 서버 구성 및 사용

lastmoon 2023. 6. 26. 21:34
반응형

유닛 테스트를 위한 mongodb mockup 서버 구성 및 사용

나는 MongoDB 스토어를 사용하여 자바 코드에 대한 Junit 테스트를 개발해야 합니다.모의 메모리 MongoDB 서버를 초기화할 수 있는 프레임워크/라이브러리가 있습니까?

(이 아이디어는 코드 자체만 테스트하는 것입니다. 즉, MongoDB가 설치 및 실행 중인지 여부에 따라 독립적으로 모든 기계에서 테스트하는 것입니다.

잘 부탁드립니다!

퐁고가 당신이 찾고 있는 것일 수도 있습니다.

저는 자바로 MongoDB 가짜 구현체를 작성했습니다: mongo-java-server( 답변 참조).

우리는 실제로 그러한 테스트 시스템을 개발하고 있고 그것은 꽤 실현 가능합니다.우리의 접근 방식에서 우리의 테스트 프레임워크는 다음 단계를 사용하여 각 테스트에 대한 다양한 데이터베이스 종속성을 설정하고 해체하는 표준 테스트 사례 클래스(우리의 경우 Junit이지만 TestNG가 더 유능해 보입니다)를 확장합니다.

테스트 제품군 설정

mongod 프로세스 시작(ProcessBuilder, 프로세스 인스턴스 저장 사용)

테스트 설정:

mongo를 테스트별 .js 파일과 함께 실행하여 초기 데이터 상태 생성

시험

테스트 실행

해체 테스트

데이터베이스 삭제

테스트 제품군 해체

mongod 프로세스 중지(process.destroy())

mongod를 시작하고 멈추는 것이 시간이 걸리는 유일한 일이기 때문에 가능한 한 적게 하는 것을 강력히 제안합니다.가능하면 전체 테스트 제품군에 대해 한 번만 사용할 수 있습니다.우리 물건은 아직 완성되지 않았지만 초기 결과는 긍정적입니다.저는 많은 대안이 있다고 생각하지 않습니다.작성 시 사용할 수 있는 mongo 모의 라이브러리가 없으며 mongod에 메모리 내/임베디드 모드가 없습니다.

그렇지는 않습니다. 애플리케이션 계층에서 직접 이러한 작업을 수행해야 합니다.Morphia를 사용하면 원하는 서비스 계층과 함께 모든 모의 프레임워크를 사용할 수 있습니다(개체가 POJO일 뿐이므로). 하지만 db/driver 레벨에서는 도움이 되는 것이 없습니다.

너무 빠르기 때문에 많은 사람들이 테스트 데이터 세트와 함께 로컬 dev.mongodb 인스턴스를 사용합니다.저는 가짜/테스트 데이터로 데이터베이스를 복사하는 것과 같이 각 테스트에 대한 테스트 데이터를 로드하는 사람들을 알고 있습니다.

테스트 고정 장치 설정의 일부로 데이터베이스를 삭제하고 기본 테스트 데이터를 채웁니다.

언급URL : https://stackoverflow.com/questions/5857809/configure-use-mongodb-mockup-server-for-unit-testing

반응형