나는 얻을 수없는 것 같습니다 before
후크가 비동기.모카 전에 비동기 적으로 작동하지 않는 훅
before
후크를 사용하여 시작했지만 실패 할 때 픽업을 시도하므로 테스트 할 서버가 없으므로 전체 블록을 건너 뛰거나 건너 뛸 수 있습니다. 와).
내 코드 전체에 [async] before
후크를 사용했지만,이 경우 내 done
이 (가) 대기하는 것은 아닙니다.
기본적으로 MochaJS 테스트가 많으며 한 블록에 대해 RESTful API를 테스트하기 위해 요청을 할 수 있도록 웹 서버를 시작해야합니다. 나는 그것이 성공적으로 시작되었는지, 따라서 비동기 메소드를 확인하고 싶다.
describe('RESTful Tests', function(){
// Start up the whole express server for these API tests
before(function(done) {
try {
server.on('error', (e) => {
console.error("HERE");
done();
});
listener = server.listen(port, function() {
console.log("Server Started");
done();
});
console.error("AFTER LISTEN");
} catch(err) {
console.error("ON Caught");
done();
}
console.error("At End!!");
});
이 실행하고 테스트에 1) "before all" hook
로 표시되지만 done
가 호출되는 것이 기다리지 않습니다. 난 단지 다른 항목의
RESTful Tests
AFTER LISTEN
At End!!
1) "before all" hook
없음 표시하지 ... 출력을 받고 있어요,하지만 난 EADDRINUSE
에 대한 (I 포트를 차단 한으로 예상) 예외를 얻을 것이다. 나는 이것을 잡는 방법을 찾기 위해 정말로 고심하고있다.
다른 (일종의) "스레드"에있는 것을 이해하므로 오류가 발생하지는 않지만 여전히 ... 비동기식 done
메서드가 적용되지 않는 이유는 무엇입니까? 약간의 오해의 소지가 밖으로