Wir sind kürzlich auf Angular 1.4 migriert und haben festgestellt, dass einige Tests zeitweise fehlschlagen, weil zwischen den Tests in den Cookies ein Status übrig bleibt. Es scheint, dass das Spotten von Cookies in den neuesten Versionen von Angle-Mocks entfernt wurde. Ich habe ein paar Plunks, um den Punkt zu veranschaulichen.
Hier, in Winkel 1.3, wird das Cookie in einem Test in $cookieStore gesetzt und in nachfolgenden Tests nicht in $cookieStore definiert:
http://plnkr.co/edit/WbRKACxBvJkHUmJwntN4?p=preview
In Angular 1.4 wird das Cookie jedoch immer noch auf nachfolgende Tests gesetzt, was dazu führt, dass es fehlschlägt:
http://plnkr.co/edit/c6jpOmmSuufSYvQysdTQ?p=preview
Wurde diese Funktion absichtlich entfernt, und wenn ja, können Sie mir mitteilen, was die beabsichtigte Problemumgehung ist?
@shahata weißt du zufällig, warum es einen Unterschied gibt?
@Narretz In früheren Versionen von Angular wurde $browser.cookies()
von ngMock
komplett verspottet und das Schreiben eines Cookies über $cookies
schrieb an eine In-Memory-Karte und nicht an den Browser. Wir haben dies in der Vergangenheit diskutiert und darüber nachgedacht, ein Testkit hinzuzufügen, das sich in neue Cookie-Mechanismen einklinkt und Tools bereitstellt, die überprüfen, ob Cookies mit korrekten Parametern geschrieben werden (es geht nicht mehr nur um den Cookie-Wert), aber ich denke nicht das ist sehr kritisch.
@butchpeters Ich denke, der beste Weg ist, wenn Sie sich in Ihrem Test über $cookies
lustig machen:
module({$cookies: {
store:{},
put: function (key, value) { this.store[key] = value; },
get: function (key) { return this.store[key]; }
}});
Hier ist der behobene Plunker: http://plnkr.co/edit/LTQHDtDM5FOiTiXl2waT?p=preview
Glaubt das Angular-Team, dass niemand das Setzen und Abrufen von Cookies mit ngCookies testen muss? Ich bin schockiert, als ich feststelle, dass dies ein Jahr nach der Veröffentlichung von 1.4 immer noch nicht behandelt wurde.
Hilfreichster Kommentar
Glaubt das Angular-Team, dass niemand das Setzen und Abrufen von Cookies mit ngCookies testen muss? Ich bin schockiert, als ich feststelle, dass dies ein Jahr nach der Veröffentlichung von 1.4 immer noch nicht behandelt wurde.