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에 따라 라이센스가 부여됩니다.