现在这个对象在哪里?

时间:2015-08-11 12:33:56

标签: javascript testing requirejs jasmine this

我必须测试一些RequireJS JavaScript代码,并且不了解如何替换特殊对象。这是RequireJS模块中一个函数的代码(简化):

changeView: function (view) {
    function setView(view) {
        this.currentView = view;
    }
    setView(view);
},

现在我想测试,如果currentViewview。 但是currentView对象保存在哪里?

我在测试中尝试了几件事:

expect(view.currentView).toBe(...);
expect(view.changeView.currentView).toBe(...);

我还尝试将内部函数保存为模块中的额外函数,但是我无法从测试中访问此currentView属性。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

答案是:

expect(window.currentView).toBe(...);

嵌套函数中通过this调用的对象似乎存储在window对象中。