1
我正在嘗試編寫單元測試以確保指令正常工作。嘲笑單元測試的角引導-UI指令
該指令的模板包括Angular bootstrap datepicker,所以我想能夠嘲笑這一點。
This question說我應該能夠通過使用$compileProvider
相同的名稱創建新的指令和設置高priority
和terminal
真嘲笑指令:
beforeEach(function() {
inject([
'$compileProvider',
function($compileProvider) {
$compileProvider.directive('datePickerOptions', {
priority: 100,
terminal: true,
template: ''
});
$compileProvider.directive('datePickerPopup', {
priority: 100,
template: ''
});
}]);
});
它還說,你可以只是嘲笑指令覆蓋他們的工廠功能,如下所示:
beforeEach(module(function($provide) {
$provide.factory('datePickerOptionsDirective', function() {
return {};
});
$provide.factory('datePickerPopupDirective', function() {
return {};
});
}));
這兩種方法都不適用於我。我正在使用Karma單元測試。有什麼想法嗎?
我最近了解到你描述的第二種方法,並藉此機會進行測試。我能夠使用$ provide服務替換指令工廠。你有什麼錯誤嗎?什麼試圖測試?你好嗎?任何機會,你可以舉起一個測試或小提琴的測試? – 2015-03-02 18:50:54
@ Scorpion-Prince你說得對,使用'$ provide'確實有效。我的錯誤是,Angular UI Bootstrap將指令定義爲'datepicker'而不是'datePicker',就像我放的那樣。對於那個很抱歉。 – 2015-03-02 21:06:01