我正在尝试编写单元测试以确保指令正常工作。
该指令的模板包含Angular bootstrap datepicker,所以我希望能够嘲笑它。
This question说我应该可以通过使用$compileProvider
创建具有相同名称的新指令并将高priority
和terminal
设置为true来模拟指令:
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单元测试。有什么想法吗?
答案 0 :(得分:1)
这是我的错误。 Datepicker code将其指令列为datepicker
,datepickerPopup
和datepickerOptions
。错误是大写问题。