저는 다음과 같은 간단한 함수를 가지고 있습니다.Sinon이 단위 테스트 'catch'문을 사용합니다.
module.exports = {
fetchUser:function(myUserId) {
return new Promise((resolve, reject) => {
this.getUser(myUserId)
.then(user => {
// do logic // then return user
return user;
})
.then(resolve)
.catch(err => {
// whoops there has been an error
let error = { error: 'My Error' };
reject(error);
});
});
}
};
내가 단위 테스트 모두 resolve
및 reject
결과를 원한다.
간단한 chai
테스트는 다음과 같습니다.
var expect = require('chai').expect;
var user = require('./user');
describe('User module', function() {
it('test fetchUser', function() {
let _user = user.fetchUser('abc123');
return _user
.then(user => {
expect(data).to.be.an('object');
});
});
그 reject
오류가 발생하는 fetchUser
기능을 위해, sinon
또는 다른 라이브러리를 어떻게 사용하십니까?
감사합니다. 이 방법으로 테스트를 설정하면 실제로 내 catch 코드 블록을 입력하지 않습니다. 스텁은 내 catch에서 던져진 오류와 일치하는 응답을 그냥 가짜 만듭니다. – sketchthat
예, 오류가'{error : 'My Error'}'와 같으므로 catch 문에 입력됩니다. 그것이 효과가 있다는 것을 증명하기 위해 더 필요한 것이 있습니까? –
고마워, 나는 단지 검사하고 있었다, 나는 스텁을 아직 완전히 이해하지 못한다. 나는 그것을 시험 할 것이다. – sketchthat