我正在尝试对仅限于属性的 Angular 指令运行一些单元测试。现在我只是想确定该指令是否存在。
有谁知道如何测试仅是属性的指令?
这是指令
的基本版本function ResetCustomer() {
return {
restrict: 'A',
link: (scope, elem) => {
elem.bind('click', function() {
//do stuff
});
}
};
}
export default {
name: 'resetCustomer',
fn: ResetCustomer
};
... HTML
<a class="brand" reset-customer>
<img src="path/to/image.jpg"/>
</a>
...和测试
describe('Unit: ResetCustomer', () => {
let element, scope, compile;
beforeEach(() => {
angular.mock.module('app');
angular.mock.inject(($compile, $rootScope) => {
scope = $rootScope.$new();
compile = $compile;
element = angular.element('<a reset-customer></a>');
compile(element)(scope);
scope.$digest();
});
});
it('should exist', () => {
expect(element).toBeDefined();
});
});
最佳答案
你首先需要在指令上有一个可测试的东西。
例如,在回调中将作用域变量 isClicked 分配给 true/false。
然后您可以在测试中触发 .click 并断言 isClicked 应该为真。
您甚至可以更进一步,在触发点击之前先断言 isClicked 为假。我不记得这个方法叫什么,但 90% 确定它是 .trigger('click') 或 mousedown...
关于angularjs - 没有模板的测试指令属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39370751/