我有返回承诺的功能。这是功能代码。
function firstFunction () {
return new Promise (function (resolve , return) {
callApi(function(data, error){
if (data) resolve (data)
else if (error) reject (error)
})
})
}
你可以看到它正在调用一些api,并在结果上返回它的返回数据。
我有另一个调用此函数的函数
function secondFunction () {
firstFunction ().then(function (data , error) {
return data
})
}
现在我想为 secondfunction 编写测试用例。但不能这样做。我把logger也放在了函数中,但似乎没有用,这是我的测试用例
describe.only ("network_test" , function () {
it ("test 01", function (done){
secondFunction (function (data) {
console.log(data);
done()
})
})
})
答案 0 :(得分:0)
要测试承诺,您应该在mocha测试中返回承诺,而不是使用done
。
您的测试应该是这样的:
describe.only('network_test', function () {
it('test 01', function () {
return secondFunction(function (data) {
console.log(data);
});
});
});
<强>更新强>
关于您的评论:请检查您的错误处理程序,firstFunction
reject
为undefinded
。在secondFunction
中,错误将使承诺永远不会解决。