2016-03-30 5 views
1

Ich habe eine Ternär, die scheint, einen Durchgangstest zurückzugeben, aber es ist fehlgeschlagen.Pass-Datum Test Winkeleinheit Tests

$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 

Hier ist meine einfache spec

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

Alles, was ich mir vorstellen kann, dass irgendwo ein Unterschied ist. Die Fehlermeldung zeigt die gleichen Werte.

Antwort

1

Das Problem, das Sie haben, dass === auf Objekte überprüft, ob die beiden Objekte das gleiche Objekt sind. === funktioniert etwas anders für Objekte im Vergleich zu Strings oder Zahlen.

Ihr Test erscheint vergleicht ein neues Date-Objekt mit scope.depart, per Definition sind diese Objekte nicht das gleiche Objekt und kann niemals 'tief' gleich sein.

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

zu prüfen, ob beide Daten die gleiche Datum/Uhrzeit stellen:

Sie könnten Ihren Test ändern.

+0

Ich sehe, was Sie damit meinen, dass die Erwartung fehlschlägt – Winnemucca

0

Sie müssen die zu testenden Antworten festlegen.

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