如何模拟`angular.element`
How to mock `angular.element`
在服务中我有以下代码片段
angular.element('html, body').animate({
scrollTop: this.parentHeight + ... - ...
}, 500);
在我的单元测试中,我想检查是否为 animate
函数提供了正确的值。但是我怎样才能模拟或监视这个 animate
函数呢?我可以想到这样的事情:
beforeEach(() => {
angular.element = () => {
return { animate: (options) => { .. }
}
});
或更好(但不工作)
spyOn(angular.element('html, body'), 'animate');
有更好的(angular)方法吗?
也许是这样的?
var element = {
animate: null,
parentHeight: 100
};
spyOn(angular, 'element').andReturn(element);
spyOn(element, 'animate');
// Your test code goes here
expect(angular.element).toHaveBeenCalledWith('html, body');
expect(element.animate).toHaveBeenCalledWith(jasmine.objectContaining({
scrollTop: 100
}, 500);
在服务中我有以下代码片段
angular.element('html, body').animate({
scrollTop: this.parentHeight + ... - ...
}, 500);
在我的单元测试中,我想检查是否为 animate
函数提供了正确的值。但是我怎样才能模拟或监视这个 animate
函数呢?我可以想到这样的事情:
beforeEach(() => {
angular.element = () => {
return { animate: (options) => { .. }
}
});
或更好(但不工作)
spyOn(angular.element('html, body'), 'animate');
有更好的(angular)方法吗?
也许是这样的?
var element = {
animate: null,
parentHeight: 100
};
spyOn(angular, 'element').andReturn(element);
spyOn(element, 'animate');
// Your test code goes here
expect(angular.element).toHaveBeenCalledWith('html, body');
expect(element.animate).toHaveBeenCalledWith(jasmine.objectContaining({
scrollTop: 100
}, 500);