1

node.js サーバー側コードのテストに nodeunit を使用しています。これが私のコードスニペットです。すべてのコードを追加したわけではありませんが、エラー リファレンスを表示できます。

メソッドの bwlow コードでtest adding a projectは、プロジェクトを mongodb に追加し、保存後にサーバーから応答を取得したら、新しく追加された _id を me.projectToUpdate['_id'] に割り当てています。

私の問題は、test build a projectテストケースで me.projectToUpdate['_id'] の値を取得できないことです。

exports.group = {
    setUp: function(callback) {
        var me = this;
        me.projectToSave = {};
        me.projectToUpdate = {};
    },

    "test for smoke": function(test) {
        test.ok(null == null);
        test.done();
    },

    "test adding a project": function(test) {
        var me = this;

        me.queue.call("Adding project to DB", function(callbacks) {
            // Here I have defined the me.projectToSave object with all fields

            project.save(me.projectToSave, callbacks.add(function(call, callReturn) {
                //Here I am assigning the project id to me.projectToUpdate object
                me.projectToUpdate['_id'] = String(callReturn._id);
            }));
        });
        me.queue.process(test);
    },

    "test build a project": function(test) {
        var me = this;

        me.queue.call("Let start the build process", function(callbacks) {
            var command = me.config['xmlDeploy'] + ' ' + me.config['options'];
            // Here I need the me.projectToUpdate['_id'] to send to server
            build.start({project: me.projectToUpdate['_id']}, callbacks.add(function() {
            }));
        });

        me.queue.process(test);
    }
};
4

1 に答える 1

0

それはおそらくスコープの問題です

setUp: function(callback) {
    var me = this;
    me.projectToSave = {};
    me.projectToUpdate = {};
},

状態をテストの外に移動することをお勧めします

var me = {}
me.projectToSave = {};
me.projectToUpdate = {};

exports.group = {
}
于 2013-08-13T10:50:04.467 に答える