我的代码通过ajax从服务器获取数据并使用promises。
如何为此代码编写单元文本?
function getPromise(){
var p = new Promise(function(resolve, reject) {
http.get({
host: 'localhost',
port: 3000,
path: '/blist'
}, function(res) {
if(res.statusCode < 200 || res.statusCode>300) {
reject('statusCode=' + res.statusCode);
return;
}
var data="";
res.on('data', function (chunk) {
data += chunk;
resolve(data);
return;
});
res.on('error', function(error) {
console.log("Got error: " + e.message);
reject(error);
});
})
});
return p;
}
答案 0 :(得分:0)
describe('promise' function (done) {
getPromise.then(response => {
// assert response
done()
})
}
答案 1 :(得分:0)
我想你想要测试一下promise函数,不管它是否会在你伪造一个http调用时做到预期。
为此您可能需要考虑传入http对象及其作为参数的回调,以便您可以模拟它们并模拟测试中的成功和错误响应。
像
这样的东西getPromise(http, req, callback) {
var promise = new Promise((resolve, reject) -> {
http.get(req, callback);
callback.on('data', data -> { // Resolve or reject looking at the status code })
})
return promise;
}
然后你可以模拟你的回调以及http#get函数来测试你的场景