2013-04-30 5 views
0

노드와 모카를 배우고 있으며 아래에 테스트가 있습니다 (프로덕션 코드가 데이터베이스의 필드를 증가시킵니다).모카와 중첩 콜백을 사용하는 노드 서버 테스트

작동 여부를 확인하려면/events에 대한 호출 전후에이 필드의 값을 출력합니다 (두 console.log 문 참조).

현재 두 경우 모두 값 출력은 1입니다. 테스트가 끝난 후 코드가 제대로 작동하고 필드가 증가합니다.

필자는 테스트 코드의 콜백과 관련이 있다고 생각합니다. (필자는 노드 코드를 올바르게 작성하고 테스트하는 법을 배우기 때문에 거의 확실합니다).

누군가가 문제를 파악할 수 있기를 바랍니다. 이 테스트중인 생산 코드는 here (요지)입니다.

it('"processed" event increases processed count', function(done) { 
    Edm.find({campaignguid: '1234'}).success(function(edm) { 
    edmProcessedCount = edm.processed; 
    console.log("pre: " + edmProcessedCount); // result is 1 

    request.post('http://localhost:3001/events?campaignguid=1234&event=processed', function(err, res, body) { 
     Edm.find({campaignguid: '1234'}).success(function(edmm) { 
     console.log("post : " + edmm.processed); // result is 1 (should be 2) 
     done(); 
     }); 
    }) 

    }); 
}); 
+0

당신이 게시물을 확인하지 떨어져, 괜찮아 보이는 코드를'err' 확인합니다 . post()'. '/ events'에 대한 핸들러의 구현과 관련이있을 수 있으므로이를 게시하는 것이 유용 할 수 있습니다. – robertklep

+0

edm 및 edmm 인수는 단지 2 개의 별도 변수이므로 Edm.find에 대한 코드를 표시해야한다고 생각합니다. 현재이 코드에는 아무 것도 없으며 하나이고 동일하고 카운터라고 암시하는 내용은 없습니다. – AndyD

+0

@AndyD'Edm.find'는 Sequelize 구조체입니다 ('Edm'은 모델이고,'find'는 데이터베이스를 쿼리하는 메소드입니다). – robertklep

답변

1

모카 테스트 케이스에 대한 여러분의 쿼리가 where 절 누락되었습니다 오류가`요청 중에 발생한 경우

Edm.find({ where : { campaignguid: '1234' }}) 
      ^^^^^