Angular.js: Angular-Mocks spotten nicht mehr über Browser-Cookies

Erstellt am 27. Aug. 2015  ·  3Kommentare  ·  Quelle: angular/angular.js

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?

ngCookies investigation

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.

Alle 3 Kommentare

@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.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen