Wird Emmber.testing = true für Komponententests empfohlen?

8

Wir haben kürzlich damit begonnen, das undokumentierte Ember.testing-Flag in unseren Jasmin-Spezifikationen zu verwenden, das die Autorun-Runloop-Funktion effektiv deaktiviert. Wir haben festgestellt, dass wir damit beim manuellen Code-Umbruch in Runloops deutlich expliziter vorgehen müssen. Dies hat uns aber auch mehr Stabilität in unseren Spezifikationen gegeben, da Probleme in der Art und Weise, wie wir die Spezifikation geschrieben haben, hervorgehoben und die Bindung dokumentiert wird sind wichtig für den zu testenden Code.

Gibt es eine offizielle Zeile zur Verwendung dieser Funktion? Es scheint sich in unserer App ziemlich positiv ausgewirkt zu haben, aber ich vermute, dass die meisten Leute sich dessen nicht bewusst sind.

    
Rob Monie 09.01.2012, 08:52
quelle

2 Antworten

7

Ja, Sie sollten definitiv Ember.testing = true in Ihren Tests setzen.

Ohne Ember.testing werden Runloops automatisch mit setTimeout geplant, von wo die Instabilität kommt, von der Sie bemerken.

Hinweis: Im Moment, wenn Sie Ember.testing aktivieren, müssen Sie vielen Zeilen in Ihrem Testcode unbedingt mit Em.run => vorangestellt werden, wie zB

%Vor%

Wenn Sie dies vergessen, wird es sich lautstark beschweren, oder der Eigenschaften- / App-Status wurde nicht aktualisiert, wenn Sie versuchen, Assertionen dagegen auszuführen.

Vielleicht wird dies eines Tages verbessert, aber im Moment ist es kein Problem, wenn Ihr Testcode mit run -Aufrufen versehen ist.

    
Jo Liss 14.01.2013 21:56
quelle
-1

Ich habe nie das Ember.testing -Flag verwendet. Es würde mich interessieren zu hören, wie es zu mehr Stabilität in Ihren Spezifikationen geführt hat. Ich habe Ember-Apps in Jasmine ohne Probleme getestet.

Ich hatte Erfolg, wenn ich die Verwendung von Ember.run() und Ember.run.sync() in der Ember-Testsuite nutze.

    
ebryn 15.01.2012 08:18
quelle

Tags und Links