promise에 대한 테스트 용례 작성
1809 단어 node.js
앞말
Promise의 상태 전환은 이해하기 어려운 개념이 아니다.하지만 테스트 용례를 쓸 때 구덩이에 빠질 수도 있다.개인 기록입니다.코드 해석
var should = require('should');
describe('promise assert', function () {
it('normal assert', function (done) {
var first = Promise.resolve('A');
first.then(function(value) {
value.should.equal('A');
done():
})
});
it('timeout assert', function (done) {
var first = Promise.resolve('A');
first.then(function(value) {
value.should.equal('AB');
done();
})
});
});
상술한 것은 처음에 쓴 테스트 용례로 당연히 첫 번째
pass, 두 번째fail로 여겨진다.결과는 첫 번째pass, 두 번째timeout error였다.일시적인 단락으로 인해 문제의 소재를 발견하지 못하고 리포에 문의한 후 결과를 알게 되었다.모든 단언은 실패 후
throw error, 계속 아래로 실행하지 않고 then 방법은 하나rejected promise로 되돌아오기 때문에 done 방법은 호출되지 않기 때문에 timeout error가 나타난다.문의한 후,
mocha 최신 버전은 promise 기반의 단언을 지원하고, done 리셋 함수에 의존하지 않습니다.코드 수정은 다음과 같습니다.var should = require('should');
describe('promise assert', function () {
it('normal assert', function () {
var first = Promise.resolve('A');
return first.then(function(value) {
value.should.equal('A');
})
});
it('timeout assert', function () {
var first = Promise.resolve('A');
return first.then(function(value) {
value.should.equal('AB');
})
});
});
이때 단언 결과는 예상대로 나왔다.
연락처
QQ:491229492https://github.com/bornkiller
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.