2015-01-24 4 views
0

현재 나머지 API를 만들고 있는데 각 경로를 단위 테스트하는 가장 좋은 방법을 찾기 위해 고심하고 있습니다.유닛 테스트 MongoDB로

경로 처리기는 다양한 작업을 수행하며 그 중 하나는 mongodb에 대한 쿼리를 실행하는 것입니다. 스텁을 사용하여 루트 처리기를 단위 테스트 할 수 있지만 쿼리 자체를 스텁링 할 수없는 쿼리를 테스트하는 경우 각 테스트에 대해 새 데이터를 재설정하고 삽입 할 수있는 메모리 내 mongodb가 있어야합니다.

검색어를 어떻게 테스트합니까? 나는 쿼리가 내가 필요한 것을 수행 하는지를 확인하는 유일한 방법은 테스트 머신에 설치된 실제 mongodb 데이터베이스 (일반적으로 개발에 사용 된 것과 동일한 머신에서)를 사용하는 것이다.

+0

관심있는 사람 : [mongodb-fixture] (https://github.com/gagle/node-mongodb-fixture) –

답변

1

예, 관계 데이터베이스의 경우와 마찬가지로 실제 기반을 가질 필요가 있습니다. mongo가 메모리 내장 자동 생성 버전을 제공하면 쉽습니다. 그렇지 않다면 각 개발자는 통합 테스트를 실행하기 전에 몽고를 실행해야합니다. CI의 경우 하나의 전용 mongo를 가질 수 있지만 동시 액세스 (스키마 생성, 다중 트랜잭션 등)를 방지해야합니다. 필요한 경우 스키마의 자동 생성을 구현하고 각 테스트를 수행하기 전에 빈 데이터베이스를 구현해야합니다. 일반적으로 관계형 db 롤백이면 충분합니다. 충분하지 않으면 모든 테이블을 다듬는 것이 도움이됩니다. 기존 도구를 찾을 수 없어 수동으로 구현해야했지만