我有一大堆工作單元測試各種角度(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