我需要spyOn'offsetWidth',因为现在值未定义。
getCurrentPage是一个基于id当前页获取元素的函数。
getCurrentPage上的间谍有效,但我还需要声明offsetWidth。但这没有用。
功能:
getCurrentPage() {
return this.$document[0].getElementById('currentPage');
}
calculateStep() {
this.stepWidth = this.getCurrentPage().offsetWidth / (this.totalSteps - 1);
return this.stepWidth;
}
单元测试:
let stepWidth = new StepController();
stepWidth.totalSteps = 5;
const dummyCurrentPage = '<div id="currentPage" style="width: 20%;"></div>';
spyOn(stepWidth, 'getCurrentPage').and.returnValue(dummyCurrentPage);
const expectedResult = '200 / 4';
const result = stepWidth.calculateStep();
expect(result).toBe(expectedResult);
});
我怎么能窥探this.getCurrentPage()。offsetWidth的offsetWidth?
最佳答案
找到了答案,将dummyCurrentPage转换为angular.element并将offsetWidth定义为angular.element。
const element = angular.element('<div id="currentPage" style="width: 20%;"></div>');
stepWidth.getCurrentPage().offsetWidth = 50;
关于javascript - 如何监视函数中调用的属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57671676/