2015-01-30 6 views
4

나는 mongoose를 통해 GIS 데이터를 MongoDB로 가져 오기 위해 npm 패키지를 작성하고 있습니다. 몽구스 모델을 저장하기 전에 발생하는 데이터 변환을 테스트하기 위해 mocha를 사용하여 단위 테스트를 작성했습니다.MongoDB/몽구스 단위 테스트 - 모범 사례?

모든 몽구스 데이터가 데이터베이스에 올바르게 저장되었는지 확인하고 싶습니다 (발생해야하는 모든 업데이트 포함). 이 경우 가장 좋은 방법은 무엇입니까?

내 직감은 테스트 컬렉션을 만들고, 모든 레코드를 삽입하고, 내가 본 것처럼 보이는지 확인하고 컬렉션을 삭제합니다.

+1

도구/라이브러리 제안 요청이 삭제되었습니다. 여전히 "오프 토픽"으로 간주됩니까? MongoDB의 단위 테스트 관행에 관한 일반적인 질문입니다. 저는 공정한 SO 질문의 범위 내에있는 것으로 생각합니다. –

답변

11

예, 단위 테스트간에 부작용이 없도록 데이터베이스의 모든 모음을 설정하고 분리해야합니다. 실제로 이것은 데이터베이스에 다시 연결하여 모든 콜렉션을 삭제하고 afterEach()을 데이터베이스에서 연결 해제하는 beforeEach()을 의미합니다.

몇 가지 더 깊은 정보 : 여기서 수행하려는 것은 코드와 mongo 사이의 실제 통합을 테스트하는 integration testing입니다. Unit tests은 데이터베이스 나 다른 리소스를 호출하지 않는 테스트입니다. 여기에 대한 자세한 정보 : What's the difference between unit tests and integration tests? 나를 위해, 나는 그들을 tests/unittests/integration으로 나눈다.

나는이 작업을 수행하는 패키지 또는 라이브러리에 대해 알지 못하지만 한 가지 방법은 this tutorial입니다.

+0

그래서 새로운 컬렉션을 만들뿐만 아니라 완전히 새로운 테스트 데이터베이스를 만들었습니까? 알았다. –

+0

거의 그 튜토리얼에서 데이터베이스는 삭제되지 않지만 컬렉션은 모두 제거됩니다. –

관련 문제