지난 며칠 동안 이미 몇 가지 질문을 게시했습니다.이 질문은 너무 길었습니다 (나는 비현실적인 피드백을받지 못했기 때문에 추측하고 있습니다). 나는 이것을 간단하게하려고 노력했다.Nodeunit 테스트 이벤트 기반 비동기 코드
다음 코드는 'setup-complete'이벤트를 사용하여 nodeunit setUp 명령에 테스트를 실행하도록 알립니다. 내 코드의 일부 무슨 문제가 있나요 TEST2
- 이벤트 기반 비동기 코드 - : 실행 취소 테스트 (또는 설정/분해 분석) : 테스트 1 개 패스 테스트 2
고장이 실패? nodeunit은 이벤트 기반 코드를 테스트하기에 좋지 않은 선택입니까? 내 접근 방식인가? 조언을 주시면 감사하겠습니다. 감사
async_setup.js :
var
events = require('events'),
setup = new events.EventEmitter;
module.exports = function (app, cb) {
setup.on('setup-complete', function() {
cb();
});
setTimeout(function() {
if (app.result) throw new Error("AlreadyConfiguredAppError");
app.result = "app is configured";
setup.emit('setup-complete', app.result);
}, 5000);
return app;
};
테스트/test.js는 :
var
nodeunit = require('nodeunit'),
async_setup = require('../async_setup');
exports[ 'event based async code' ] = nodeunit.testCase({
setUp: function (callback) {
this.app = {};
async_setup(this.app, callback);
},
tearDown: function (callback) {
delete this.app;
callback();
},
'test1': function (t) {
t.expect(1);
t.ok(this.app.result !== undefined, 'app is configured');
t.done();
},
'test2': function (t) {
t.expect(1);
t.ok(this.app.result !== undefined, 'app is configured');
t.done();
}
});
문제가 발생하여 이벤트 리스너 설정이 테스트 사이에 파괴되지 않습니다. – user3381520