Reset ember-data FixtureAdapter Speicher / Modelle in Tests

9

Unsere App verwendet Glut-Daten mit dem FixtureAdapter. Wir testen den Modellcode (verschiedene JS-Berechnungen) mit Jasmine und js-test-driver. Jeder it-Block erstellt seine eigenen Datensätze in einem beforeEach-Block.

Dies funktioniert gut mit Ember-1.0.0-rc.1 und Ember-Daten, die lokal am 2013-03-05 (rev 7575f5a) erstellt wurden. Ich versuche gerade, auf 1.0.0-rc.3 und die neuesten ember-Daten zu aktualisieren, aber treffe einen Roadblock mit einzigartigen IDs. Beim Ausführen aller Tests wird der folgende Fehler angezeigt:

%Vor%

Es sieht so aus, als würde eine neuere Version von ember-data auf eindeutigen IDs bestehen. Leider erfordern unsere Tests hartcodierte IDs für Datensätze, die im beforeEach-Block jedes Tests neu erstellt werden. Bei jedem Test wird ein Foo mit der ID 1001 erstellt.

Gibt es einen einfachen Weg, um den Laden mit einem FixtureAdapter alle seine Daten zurücksetzen (und folglich über Foo 1001 vergessen)? Ich habe versucht, die Fixtures mit:

zurückzusetzen %Vor%

Allerdings scheinen die Glutendaten immer noch die alten Aufzeichnungen zu verfolgen. Ich habe auch App.reset() ausprobiert, aber es scheint den Speicher nicht zurückzusetzen.

Wir machen das auch

%Vor%

im beforeEach-Block mit der Annahme, dass dadurch alle Daten gelöscht werden, indem ein neuer Speicher erstellt wird, aber das funktioniert auch nicht.

    
George Shakhnazaryan 22.04.2013, 14:40
quelle

2 Antworten

0

Ich stieß anfangs auf genau das gleiche Problem und versuchte, Datensätze vor einzelnen Tests zu generieren. Es ist hilfreich, an Fixtures im Rails-Sinn zu denken, wo sie einen repräsentieren Satz von Datensätzen, die einmal erstellt werden, bevor alle Tests ausgeführt wurden.

Das steht im Gegensatz zum Factory-Stil, bei dem vor jedem Test individuelle Datensätze erstellt werden. Dies ist das Muster, dem Sie zu folgen scheinen.

Es handelt sich eher um eine Lösung als um eine Lösung, aber ich würde empfehlen, alle Ihre Fixtures in eine oder mehrere Dateien zu packen und diese dann vor allen Tests zu laden. Sie würden dann denselben Datensatz aus separaten Tests referenzieren, ohne sie zu rekonstruieren.

Der größte Nachteil des Fixture-Ansatzes ist, dass nach jedem Test kein "rolback" zur Verfügung steht. Daher müssen Sie vorsichtig sein, Datensätze zu mutieren, wenn Sie sich auf die ursprünglichen Werte in Ihren Tests verlassen.

    
Parker Selbert 04.10.2013 15:09
quelle
0

Stellen Sie sicher, dass Sie Ember.reset () zwischen jedem Testlauf ausführen (indem Sie es vor jedem Block in Ihren Jasmin legen)

    
Julian Leviston 02.05.2014 04:51
quelle

Tags und Links