[英]Unit testing javascript promises
我的代码通过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;
}
我猜你想要测试一下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函数来测试你的场景
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.