我有一个类似于此的javascript承诺:
function a(){
return new Promise(function(resolve, reject){
b().then(function(result){
if(result.name == 'sampletest1'){
resolve({
'data': 'testdata1'
});
}else if(result.name=='sampletest2'){
resolve({
'data': 'testdata2'
});
}
}, reject);
})
}
我想在jasmine中编写测试来测试函数a
的功能。但是我遇到了麻烦,因为这个函数依赖于函数b
的结果,这也是一个承诺。那么,如何模拟函数b
,以便我能够测试函数a
的功能。
答案 0 :(得分:0)
不要退还额外的承诺:
function a() {
return b().then(function(result) {
if (result.name == 'sampletest1') {
return {
'data': 'testdata1'
};
} else if (result.name == 'sampletest2') {
return {
'data': 'testdata2'
};
}
});
}
模拟b
就像这样简单:
b = function () {
return new Promise(function (resolve) {
resolve({ name: 'sampletest1' });
});
};