【发布时间】:2017-10-07 09:34:15
【问题描述】:
想了解如何使用 promises 为以下场景编写测试
注意:以下代码为伪代码
class Service{
get(){
return Promise.resolve('hi');
}
}
class otherObj{
trigger(a){
console.log(a);
}
}
class Caller{
getData(){
new Service()
.get()
.then((a)=>{console.log('in resolve') otherObj.trigger(a)},
(r)=>{console.log('in reject') otherObj.trigger(r)}
)
}
}
在编写测试时,我意识到即使在存根 Service.get() 调用以返回已解决的承诺控制台日志之后,也不会被调用。如何测试这样的场景?
descibe('test', ()=>{
it('test resolve', ()=>{
let stub = stub(Service.prototype, 'get').returns(Promise.resove('hi'))
new Caller().getData();
stub.restore();
})
it('test reject', ()=>{
let stub = stub(Service.prototype, 'get').returns(Promise.reject('error'))
new Caller().getData();
stub.restore();
})
})
【问题讨论】:
-
你需要返回在
getData创建的promise
标签: javascript tdd mocha.js sinon chai