[英]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.