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()'。 –