如何在Backbone初始化方法中存根require.js模块

时间:2014-03-28 09:39:21

标签: backbone.js requirejs jasmine

您好我希望能够在Backbone对象的初始化中存根调用requirejs模块。例如:

define(function(require){
    var Backbone = require("backbone"),
    BalanceModule = require("BalanceModule");

    return Backbone.View.extend({
        initialize:  function(){
            this.balance = BalanceModule.requestBalance();
        }
    });
})

我希望能够存根BalanceModule,但因为在初始化方法中我无法做到。

我可以存根初始化方法,但这意味着我要在测试中测试代码。

我尝试了require.undef()模块并加载另一个没有运气的模块。看来,一旦你初始化了对象,它就有一个内部引用无法覆盖。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以像这样修改 BalanceModule

define({        
    var BalanceModule = function(){

    }

    return BalanceModule;    
});

而不是:

define({        
    var BalanceModule = function(){

    }

    return new BalanceModule();    
});

所以你可以像这样使用:

define(function(require){
    var Backbone = require("backbone"),
    BalanceModule = require("BalanceModule");

    return Backbone.View.extend({
        initialize:  function(){
            this.balance = new BalanceModule().requestBalance();
        }
    });
})