Angular 我能';t比较我的组件测试中的日期
我正在测试一个组件,我有这样一个场景: 我的组件装载并调用Angular 我能';t比较我的组件测试中的日期,angular,jasmine,Angular,Jasmine,我正在测试一个组件,我有这样一个场景: 我的组件装载并调用ngOnInit()。MyngOnInit()调用在变量startDateone date中设置的一个函数: ngOnInit() { this.getActualDate() } getActualDate(){ this.startDate = new Date() this.startDate.setHours(0, 0, 0) } 我试图测试我的组件是否用日期填充变量startDate 这就是我所尝试的: f
ngOnInit()
。MyngOnInit()
调用在变量startDate
one date中设置的一个函数:
ngOnInit() {
this.getActualDate()
}
getActualDate(){
this.startDate = new Date()
this.startDate.setHours(0, 0, 0)
}
我试图测试我的组件是否用日期填充变量startDate
这就是我所尝试的:
fit('should compare the date', () => {
const startDate = new Date();
startDate.setHours(0, 0, 0);
spyOn(component, 'getActualDate');
component.getActualDate();
fixture.detectChanges();
expect(component.startDate).toEqual(startDate);
})
运行此测试时,出现以下错误:
Expected Date(Thu Aug 06 2020 23:59:59 GMT-0300 (Horário Padrão de Brasília)) to equal Date(Thu Aug 06 2020 00:00:00 GMT-0300 (Horário Padrão de Brasília)).
函数toEqual()
在比较过程中使用严格的等式。这意味着一个物体被认为不等于任何其他物体,即使它们看起来是相同的
console.log(新日期()==新日期())//false。即使它们非常相似
如果要比较等价性,应该只比较对象的基本属性。您还可以对对象调用toString(),因为string是一种基本类型:
console.log(new Date().toString()==new Date().toString())//true
您需要模拟全局日期类