2016-03-30 26 views
1

Geçmekte olan bir testi döndüren bir üçlüye sahibim, ancak başarısız oluyor.Geçiş tarihi testi açısal birim testleri

$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 

İşte hayal edebiliyorum tüm yerlerde bir fark olmasıdır benim basit Spec

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

olduğunu. Hata mesajı aynı değerleri gösterir.

cevap

1

Eğer nesneler üzerinde === iki nesnenin aynı nesne olup olmadığını kontrol eder buna sahip sorunu. ===, dizeler veya sayılar ile karşılaştırıldığında nesneler için biraz farklı çalışır.

Testiniz, yeni bir Date nesnesini scope.depart ile karşılaştırır, tanım olarak bu nesneler aynı nesne değildir ve hiçbir zaman 'derin' olarak eşit olamaz. Her iki tarih aynı tarih/saat temsil ettiğini kontrol etmek

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

:

Bu hizmeti kullanmak için testi değiştirebilir.

+0

Bunun için ne anlama geldiğini görüyorum, bu durumun başarısız olması – Winnemucca

0

Test edilecek yanıtları dizgelemeniz gerekir.

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