【发布时间】:2018-11-30 11:59:00
【问题描述】:
问题? 我正在尝试测试一种使用 moment.subtract() 方法的方法,该方法从当前日期开始计算 1 天。首先,Moment 提供给我们的减法只是对日期进行操作,并没有创建新的日期,所以没有新的内存地址位置。尝试测试此方法时,我收到以下预期错误:
[ Wed Jun 20 2018 09:14:52 GMT+0100 ]
but actual calls were
[ Wed Jun 20 2018 09:14:52 GMT+0100 ]
很奇怪吧?
我唯一能想到的是在我的代码中某处日期参考正在改变。我将把我的代码和单元测试放在下面
public prevDate = () => {
this.datePickerService.changeDate(this.date.subtract(1, 'day'));
}
ngOnInit() {
this.date = this.datePickerService.date; // Is this the problem?
}
单元测试:
describe('When the prevDate method is called', () => {
setupComponent();
it('should show yesterdays date', () => {
spyOn(datePickerService, 'changeDate');
datePickerService.date = moment();
component.prevDate();
expect(datePickerService.changeDate).toHaveBeenCalledWith(datePickerService.date.add(-1, 'days'));
});
});
【问题讨论】:
标签: javascript angular unit-testing momentjs