2013-05-30 1 views
3

db 작업 중 일부가 제대로 실행되는지 테스트하려고합니다. (내가 테스트를 위해 모카를 사용하고 있습니다) 다음과 같은 흐름은모든 db 작업이 끝날 때까지 대기하도록 mocha/nodejs에 지시하는 방법

    데이터를 순환하고 권리를 절약 할 수 있는지 확인하기 위해 (내 테스트 케이스에서)
  1. 가 레디 스에서 데이터를 가져 레디 스에 저장
  2. 전화 코드 데이터.

아무 것도 저장되기 전에 db에서 가져온 데이터가 많이 실행된다는 사실을 알고 있습니다. mocha에서 done() 옵션을보고 있었지만 데이터가 mocha (설정 등)를 통해 저장되는 경우에만 작동하는 것으로 보입니다.

그렇다면 모카가 db에서 검색하기 전에 모든 db가 저장 될 때까지 기다릴 것을 명령하는 방법은 무엇입니까? 어떤 도움

답변

0

에 대한

덕분에 당신은 데이터베이스에 데이터를로드하는 데 모카에 다 매개 변수 기능하기 전에를 작성해야합니다. 데이터가로드 될 때 콜백으로 done()을 호출합니다. 이제 첫 번째 테스트 전에 모든 데이터가로드됩니다.

+0

데이터를로드하는 것에 대해 말하지 않았습니다. 이것은 데이터베이스 작업을 수행 한 다음 해당 데이터베이스 작업이 올바르게 수행되었는지 테스트하기위한 비즈니스 기능을 테스트하는 것입니다. – bluesman

+0

예, 테스트를 실행하기 전에 데이터를 설정하기 위해 mocha에서 before 함수를 사용하는 방법에 대한 지침을 제공합니다. 다음은 예제입니다. http://stackoverflow.com/a/16321613/1935918 – dankohn

3

dankohn이 정확합니다. 여기에 당신이해야 할 무엇, 좀 더 구체화 :

describe('Your test', function() { 
    before(function (done) { 
     Your.redis.db.call.here(your, parameters, function (err) { 
      ...you may want to check for errors first... 
      done(); 
     }); 
    }); 

    it('should do what you wanted...', function (done) { 
     ...your test case... 
     done(); 
    }); 
}); 

귀하의 레디 스 가능성이 높습니다 매개 변수로 콜백 기능을 제공 호출합니다. 이 콜백 함수는 redis 호출이 완료되면 실행됩니다. 해당 콜백 함수 내에서 done()으로 전화하십시오. 귀하가 작성한 데이터는 귀하의 테스트 동안 거기에 있습니다.

관련 문제