2014-06-18 1 views
1

TDD (모카)를 사용하여 node.js 서버용 함수를 작성하고 있습니다. 데이터베이스에 연결을 위해 나는 모든 테스트 케이스 (모카)에 대한 기본 before() 함수 추가

before(function(done){ 
    db.connect(function(){ 
     done(); 
    }); 
}); 

을하고 그리고 난 make test를 사용하여 테스트 케이스를 실행하고있어 mocha *.js

그러나 각각을 사용하여 특정 폴더에있는 모든 JS 파일을 실행하도록 내 메이크를 구성 js 파일 데이터베이스에 별도로 연결해야합니다. 그렇지 않으면 다른 테스트 파일과 공통 범위를 공유하지 않기 때문에 테스트 케이스가 실패합니다.

문제는 beforeAll()과 같이 데이터베이스에 연결 한 다음 모든 테스트 사례를 실행하는 것과 같은 것이 있습니까? 어떤 도움이나 제안도 감사합니다.

답변

1

각 모카 테스트 모듈이 가져 오는 모듈로 db 연결을 설정할 수 있습니다.

var db = require('./db'); 

좋은 데이터베이스 인터페이스는 연결하기 전에 보내기 명령을 대기시킵니다. 여기에서 이점을 활용할 수 있습니다.

before 전화 번호는 no op입니다. SQL에서는 SELECT 1의 원시 쿼리와 같은 간단한 것이 될 것입니다. 결과에 신경 쓰지 않아도됩니다. 쿼리가 반환되면 데이터베이스가 준비되었음을 나타냅니다.

각 모카 모듈은 동일한 데이터베이스 모듈을 사용하기 때문에 한 번만 연결됩니다. 테스트 모듈의 각

사용이 :

before(function(done) { 
    db.no_op(done); 
}); 

는 그 다음 no op을 수행하고 콜백 함수를받는 함수로 db.no_op을 정의합니다.

+0

나는 이전에 같은 생각을 가지고 있었지만 구성 할 수있는 모카 (mocha) 특정 기능과 같은 것을 더 많이하는 "모카 (mocha)"방법을 생각하고있었습니다. 그러나 어쨌든 당신은 해결책 작품입니다. 감사와 +1의 신속한 대응. –

관련 문제