有没有办法对 AngularJS 中的简单指令声明进行单元测试? (无 link 功能)
Is there a way to unit test a simple directive declaration in AngularJS? (no link function)
所以我有一个像这样的简单指令定义
function computeTotals() {
return {
restrict: 'A',
templateUrl: 'compute-totals.html',
controller: 'ct as ctrl',
scope: {},
bindToController: {
property: '=',
numbersArray: '='
}
};
}
我将如何进行单元测试以确保此指令设置正确?我只想验证这些属性
我不知道是否有办法轻松获得它,也不确定它是否会在某些情况下损坏。但我在我的规范中尝试了以下代码,也许你可以尝试你的期望并提供反馈。
let componentName = 'dummyComponent';
let directiveName = 'dummyDirectiveName';
let templateUrl = 'dummyTemplateUrl';
var details = angular.module(componentName)['_invokeQueue'];
var directives = details.filter(detail1 => detail1[1] === 'directive');
var directiveInfo = directives.filter(y1 => y1[2][0] === directiveName );
var result = directiveInfo[0][2][1]();
console.log('TESTTTT ',result);
expect(result['templateUrl']).toEqual(templateUrl);
所以我有一个像这样的简单指令定义
function computeTotals() {
return {
restrict: 'A',
templateUrl: 'compute-totals.html',
controller: 'ct as ctrl',
scope: {},
bindToController: {
property: '=',
numbersArray: '='
}
};
}
我将如何进行单元测试以确保此指令设置正确?我只想验证这些属性
我不知道是否有办法轻松获得它,也不确定它是否会在某些情况下损坏。但我在我的规范中尝试了以下代码,也许你可以尝试你的期望并提供反馈。
let componentName = 'dummyComponent';
let directiveName = 'dummyDirectiveName';
let templateUrl = 'dummyTemplateUrl';
var details = angular.module(componentName)['_invokeQueue'];
var directives = details.filter(detail1 => detail1[1] === 'directive');
var directiveInfo = directives.filter(y1 => y1[2][0] === directiveName );
var result = directiveInfo[0][2][1]();
console.log('TESTTTT ',result);
expect(result['templateUrl']).toEqual(templateUrl);