2016-03-30 68 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());