Javascript 模拟单元测试的角度引导ui指令
我正在尝试编写一个单元测试,以确保指令正确工作 该指令的模板包括,所以我希望能够模拟它 说我应该能够通过使用Javascript 模拟单元测试的角度引导ui指令,javascript,angularjs,unit-testing,Javascript,Angularjs,Unit Testing,我正在尝试编写一个单元测试,以确保指令正确工作 该指令的模板包括,所以我希望能够模拟它 说我应该能够通过使用$compileProvider创建同名的新指令,并将高优先级和终端设置为true来模拟指令: beforeEach(function() { inject([ '$compileProvider', function($compileProvider) { $compileProvider.directive('datePickerOptions', {
$compileProvider
创建同名的新指令,并将高优先级和终端设置为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单元测试。有什么想法吗?这是我的错误。将其指令列为datepicker
、datepickerpoup
和datepickerOptions
。错误是资本化问题。我最近了解了您描述的第二种方法,并借此机会对其进行了测试。我能够使用$PROFECT服务替换指令工厂。你有什么错误吗?你想测试什么?你是怎么做到的?有没有可能,你可以进行一次测试?@Scorpion Prince你说得对,使用$provide
确实有效。我的错误是Angular UI Bootstrap将指令定义为datepicker
,而不是我刚才所说的datepicker
。很抱歉。