Meine App speichert einige Informationen zur aktuellen Sitzung in localStorage
. Daher brauche ich meine Tests, um vor oder nach jedem einzelnen Test in allen Testdateien localStorage
zu löschen. Gibt es eine Möglichkeit, einen beforeEach
oder afterEach
Rückruf global statt auf jeder Testdatei zu definieren?Global beforeEach/afterEach für ember qunit-Tests
1
A
Antwort
2
Wir hatten ember-qunit module
, moduleFor
und moduleForComponent
aus einem fast gleichen Grund gewickelt. Und wir importieren diese Wrapper anstelle von ember-qunit.
Ein anderer Vorschlag ist, localStorage mit einem Dienst zu verpacken. Greifen Sie niemals auf localStorage mit Ausnahme dieses Dienstes zu. Sie können also in Tests eine Scheinimplementierung verwenden.
Aktualisiert:
Wie es realisiert wird:
import { moduleFor, moduleForModel, test, only, setResolver } from 'ember-qunit';
import { moduleForComponent as qunitModuleForComponent } from 'ember-qunit';
function moduleForComponent(name, description, callbacks) {
//our implementation that wraps "qunitModuleForComponent"
//eg. init commonly used services vs.
}
export {
moduleFor,
moduleForComponent,
moduleForModel,
test,
only,
setResolver
};
Vorteile:
- Verhindert Code-Duplizierung
- Zentralisieren Unit-Test-Management
- Einfache neue Methoden hinzufügen für kundenspezifische Bedürfnisse, wie:
moduleForValidatableComponent
,moduleForLocalStorage
Nachteile:
- ember-cli erzeugt testet diejenigen
ember-qunit
importieren. Entwickler müssen die Importanweisungen in diese Wrapper ändern. Es wurde manchmal vergessen. (Wenn ein Test fehlschlägt, erinnern sich Entwickler daran, dass sie Importanweisungen ändern müssen.) - Für einige Tests ist das Umwickeln nicht erforderlich.
Verwandte Themen
- 1. Ember: global verfügbare Suchkomponente (und Aktion)?
- 2. Global für Administrator anmelden
- 3. FB.init global für Angular2
- 4. Eine Art "global" für IBDesignables?
- 5. Global node_modules Standort für Projekt
- 6. Global Menü für Android-Anwendungen
- 7. Anderer Dateiname für global composer.json
- 8. Ember Daten ohne Ember?
- 9. Filemanager Komponente für ember cli
- 10. Ember Integrationstest für Closure Aktionen
- 11. Ember globale Variable für Eingabegröße
- 12. Ember Ember-views.render-Doppel ändern
- 13. Ember: Ember mit Emblem herunterbauen
- 14. Ember 2.0 ohne Ember cli?
- 15. Ember + Ember-Daten, Fehlerbehandlungssubstanzen auf Anwendungsebene, Ember 2.8
- 16. Beobachten Nicht-Ember-Globals
- 17. tinyMCE plugin mit Ember
- 18. Verwenden einer lokalen Installation von phantomjs für "ember test"
- 19. Ember, Ember Data und MongoDBs _id
- 20. Architektur für einen global verteilten Neo4j?
- 21. Global Interceptor für ws: outbound-gateway
- 22. Schriftgröße global für CJK-Schriftarten erhöhen?
- 23. android global Objektreferenz für alle Aktivitäten
- 24. Nginx - Global 500 Seite für alle Standorte
- 25. Validate ModelState.IsValid global für alle Controller
- 26. Kotlin - Variable global für WebView definieren
- 27. So konfigurieren Sie Ember CLI für die Verwendung von uncss
- 28. Ember Ember-views.render-Doppel ändern deprecation
- 29. Bereitstellung der ember-cli App für Heroku
- 30. Standard-Layout für Ember-cli, statt „UnrecognizedURLError
Danke für den Tipp über das Einpacken von localStorage mit einem Service. Aber ich ziehe immer noch vor, was Sie über das Umhüllen dieser Methoden von ember-qunit erwähnen, da diese Funktion außerhalb meines aktuellen spezifischen Bedarfs nützlich sein könnte. Könnten Sie näher erläutern, wie diese Verpackung funktioniert? – Ernesto
@Ernesto aktualisiert – ykaragol