Javascript 如何模拟'angular.element`
在服务中,我有以下代码片段Javascript 如何模拟'angular.element`,javascript,angularjs,unit-testing,jasmine,mocking,Javascript,Angularjs,Unit Testing,Jasmine,Mocking,在服务中,我有以下代码片段 angular.element('html, body').animate({ scrollTop: this.parentHeight + ... - ... }, 500); 在我的单元测试中,我想检查animate函数的值是否正确。但是我如何模拟或监视这个动画功能呢?我能想到这样的事情: beforeEach(() => { angular.element = () => { return { ani
angular.element('html, body').animate({
scrollTop: this.parentHeight + ... - ...
}, 500);
在我的单元测试中,我想检查animate
函数的值是否正确。但是我如何模拟或监视这个动画
功能呢?我能想到这样的事情:
beforeEach(() => {
angular.element = () => {
return { animate: (options) => { .. }
}
});
或者更好(但不起作用)
有更好的(角度)方法吗?也许是这样的
var元素={
动画:空,
父母身高:100
};
spyOn(角的,'元素')。andReturn(元素);
spyOn(元素“动画”);
//你的测试代码在这里
expect(angular.element).toHaveBeenCalledWith('html,body');
expect(element.animate).tohavencalledwith(jasmine.objectContaining)({
滚动顶部:100
},500);
这将起作用,但您不需要在此处测试任何内容!您可以测试自己的模拟(动画)还有一件事,主要是不需要测试实际参数,如100和100500@user2978188你有其他方法来测试这个吗?顺便说一句,我觉得无论你所说的“实际”参数是什么都需要测试。所有的参数都应该测试。
spyOn(angular.element('html, body'), 'animate');