我必须测试一些RequireJS JavaScript代码,并且不了解如何替换特殊对象。这是RequireJS模块中一个函数的代码(简化):
changeView: function (view) {
function setView(view) {
this.currentView = view;
}
setView(view);
},
现在我想测试,如果currentView
是view
。
但是currentView
对象保存在哪里?
我在测试中尝试了几件事:
expect(view.currentView).toBe(...);
expect(view.changeView.currentView).toBe(...);
我还尝试将内部函数保存为模块中的额外函数,但是我无法从测试中访问此currentView
属性。我该怎么做呢?
答案 0 :(得分:0)
答案是:
expect(window.currentView).toBe(...);
嵌套函数中通过this
调用的对象似乎存储在window
对象中。