2
我正在嘗試在我的node.js項目上執行jasmine-node單元測試。我需要獲得一組文件路徑,然後將該數組傳遞給單元測試。但是,由於這是異步的,我必須使用回調,並且我不能返回數組。我無法弄清楚如何將檢索到的數組發送到單元測試。異步回調返回值(在單元測試中)
這裏是我的代碼:
module.exports = {
results: [],
walk: function(){
var nodeDir = require("node-dir");
nodeDir.files(__dirname + "/public/img", function(err, files){
if (err){ throw err; }
getData(files);
});
},
getData: function(files){
console.log(files);
results = files;
}
};
,這裏是我的單元測試:
var gallery = require("./server");
describe("Gallery", function() {
var picArray = [
"/gallery/public/img/dir1/lizard-248705_1280.jpg",
"/gallery/public/img/dir1/loch-ness-151851_1280.png",
"/gallery/public/img/dir1/sand-lizard-63185_1280.jpg",
"/gallery/public/img/dir1/stegosaurus-24752_1280.png"];
it("walks the images directory", function(){
expect(gallery.walk()).toEqual(picArray);
});
});
謝謝!這工作。儘管我起初有點麻煩,因爲'gallery.walk()'沒有按照與picArray相同的順序發回數組,所以我仍然遇到錯誤。我不得不傳入'files.sort()'。 –