我想窥探jquery callin我的指令:
link: function postLink(scope, element) {
$('.report-datepicker', element).datepicker();
}
我试过这个
var datepickerSelector = '.report-datepicker';
beforeEach(inject(function ($rootScope, $compile) {
jQuerySpy = spyOn(window, '$');
scope = $rootScope.$new();
element = $compile(angular.element('<date-picker></date-picker>'))(scope);
}));
it('should be use correct selectors', function () {
expect(jQuerySpy).toHaveBeenCalledWith(datepickerSelector, element);
});
测试失败,因为从未调用过间谍。
你知道如何正确设置间谍?
答案 0 :(得分:2)
这很容易
it('should be use correct selectors', function () {
spyOn($.fn, "datepicker").andReturn("bar");
var result = $('.report-datepicker', element).datepicker();
expect(result).toEqual("bar");
});
您也可以尝试创建自定义间谍,使其更适合您的情况,但这个应该可以使用