Я пытаюсь выполнить тестирование модуля жасмина-узла на моем проекте node.js. Мне нужно получить массив путей к файлам, а затем передать этот массив в модульный тест. Однако, поскольку это асинхронно, я должен использовать обратный вызов, и я не могу вернуть массив. Я не могу понять, как отправить полученный массив в модульный тест.Возвращаемое значение для асинхронного обратного вызова (в модульном тесте)
Вот мой код:
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()'. –