异步回调的返回值(在单元测试中)

时间:2015-09-26 03:22:20

标签: javascript arrays node.js unit-testing asynchronous

我正在尝试在我的node.js项目上进行jasmine-node单元测试。我需要获取一个文件路径数组,然后将该数组传递给单元测试。但是,由于这是异步的,我必须使用回调,而且我无法返回数组。我无法弄清楚如何将检索到的数组发送到单元测试。

这是我的代码:

<img src="<?php the_field('myimage'); ?>" />

这是我的单元测试:

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;
    }
};

1 个答案:

答案 0 :(得分:0)

这样你可以发回数组。 Haven没有对它进行测试,但它应该有效。

 module.exports = {
      results: [],
      walk: function(callback){ //Added callback argument
        var nodeDir = require( "node-dir" );
        nodeDir.files( __dirname + "/public/img", function( err, files ){
            if ( err ){ throw err; }    
            callback(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(done){
        gallery.walk(function(files){ //Pass callback to walk
            //Your code here
            done(); //ends the async test
        });
    });
});
相关问题