我正在尝试对Angular指令运行一些单元测试,该指令仅限于一个Attribute。现在我只是想确定指令是否存在。
有谁知道如何测试仅作为属性的指令?
以下是指令
的简单版本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();
});
});
答案 0 :(得分:1)
首先需要在指令上有一个可测试的东西。
例如,在回调中,它将范围变量isClicked分配给true / false。
然后你可以在测试中触发一个.click并且断言isClicked应该是真的。
在点击之前,您甚至可以加倍努力并使之前的断言isClicked为false。我无法记住所谓的方法,但90%确定它的.trigger(&#39;点击&#39;)或mousedown ......