2016-03-30 70 views
1

我有一个三元似乎正在返回通过测试,但它是失败的。通过日期测试角单元测试

$scope.depart = (typeof serverShortDate !== 'undefined') ? new Date(serverShortDate) : new Date(); 



AssertionError: expected Wed, 30 Mar 2016 21:26:12 GMT to deeply equal Wed, 30 Mar 2016 21:26:12 GMT 

这里是我的简单规格

expect(scope.depart).to.deep.equal(new Date()); 

所有我可以想像的是,地方是有区别的。错误消息显示相同的值。

回答

1

对象上的问题===检查到两个对象是同一个对象。与字符串或数字相比,===对物体的作用略有不同。

出现您的测试一个新的Date对象比较scope.depart,通过定义这些对象不是同一个对象,也决不能“深深地”相等。

你可以测试更改为:

expect(scope.depart.valueOf()).to.deep.equal((new Date()).valueOf()); 

检查两个日期代表相同的日期/时间。

+0

我明白你的意思,因为这个预期失败 – Winnemucca

0

您需要对待测试的响应进行串联。

expect(scope.depart.toString()).to.deep.equal(new Date().toString());