Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 我能';t比较我的组件测试中的日期_Angular_Jasmine - Fatal编程技术网

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()
。My
ngOnInit()
调用在变量
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

您需要模拟全局日期类