我有一大堆工作单元测试各种角度(1.4.7)的指令,而我使用的是因果报应,茉莉花和兴农用于测试的角度指令。
我想添加一个单元测试了新的指令,这是唯一的指令,我现在有一个使用$window
但我看到控制台输出一个神秘的错误:
TypeError: 'undefined' is not an object (evaluating 'this.proxy.toString')
这误差从sinon.js在陆续上马2372
我做的指令单元测试所有的“正常”的事情,如创建具有指令作为属性假的元素:
testElement = document.createElement('div');
testElement.setAttribute('data-my-directive');
document.body.appendChild(testElement);
和编译指令:
$compile(testElement)($scope);
我使用$provide
尝试模仿的对象$window
:
module('app', function ($provide) {
$provide.value('$window', { id: 'test' });
});
但只要我尝试在文件中使用$window
正在测试中,错误如上所示被抛出。
正如我说的,我有一堆的其他单元测试其他指令,服务和控制器如预期工作,所以一切似乎正确地安装。这只是这个特殊的测试。
任何想法?
完美的,我会尽量在周一的新版本。 – danwellman
抱歉,延迟。我在这方面做了一些更多的工作,它*不是Sinon的版本,虽然这是一个很好的电话。我认为问题在于,在被测文件中使用'$ window'的代码也在'$ document.ready()'处理程序中,之前我没有正确存根。我将这个标记为公认的答案,因为它是唯一的答案,也因为它让我思考了被测代码的所有方面,而不仅仅是使用'$ window'的部分,这是非常宝贵的。谢谢! – danwellman