我正嘗試在Node.JS上創建Mocha和Chai的單元測試。下面是函數的簡化版本進行測試:用摩卡建立異步代碼測試(請求)
router.cheerioParse = function(url, debugMode, db, theme, outCollection, _callback2) {
var nberror = 0;
var localCount = 0;
console.log("\nstarting parsing now : " + theme);
request(url, function(error, response, body) {
//a lot of postprocessing here that returns
//true when everything goes well)
});
}
這裏是測試我想寫:
describe('test', function(){
it('should find documents', function(){
assert( true ==webscraping.cheerioParse("http://mytest.com, null, null, null ,null,null));
});
})
如何能在request
函數返回真要把它傳遞給測試?我試圖使用承諾,但它也沒有工作。在這種情況下,我應該把回報聲明放在then
回調中嗎?什麼是最好的方法?
摩卡支持[異步API(HTTP:/ /mochajs.org/#asynchronous-code)和[Promises](http://mochajs.org/#working-with-promises) – laggingreflex