2016-06-09 5 views
3

Lassen Sie mich zuerst das Problem zu erklären: Wir haben eine Ember basierte Dirty Form Checker, die das IsDirty Flag zurückgesetzt werden soll, wenn der Benutzer auf eine andere Seite wechselt und den Übergang bestätigt Änderungen auf der Seite. Wir hatten einen Fehler, bei dem der Bestätigungsdialog erneut angezeigt wurde, wenn der Benutzer mit Änderungen übergegangen, die Änderung bestätigt, dann zurückgegeben, keine Änderungen vorgenommen und wieder weg navigiert wurde. Einfache Lösung, setze einfach das Flag auf der anfänglichen Bestätigung zurück. Jetzt versuche ich, einen Integrationstest dafür zu schreiben, aber ich kann keine klare Dokumentation finden, wie man das testet. Was ich tun möchte, ist programmatisch die Form zu ändern, weg, dann zurück und dann wieder weg. Wie kann ich das erreichen? Das ist Ember 2.3.0.Ember Integration Test simulieren Übergang zu einer anderen Route und dann zurück

Hier ist etwas, was ich versucht habe:

this.render(hbs `{{#mycomp invokeDialog=invokeDialog on-dirty=formDirtyEvent on-confirm=dialogConfirmEvent on-cancel=dialogCancelEvent}} 
        {{mytextfield id=id label="dummy-form-fullName" type="text" inputBindValue="Paul Ryan"}} 
        {{/mycomp}}`); 

      Ember.$("#textfield-" + this.get('id')).val("Paul Ryana"); 
      fillIn(Ember.$('#textfield-' + this.get('id')), 'Paul Ryanna'); 


      visit("/").then(function() { 

      }); 

Dies erzeugt den Fehler:

"Error: Assertion Failed: You cannot use the same root element (#ember-testing) multiple times in an Ember.Application"

Antwort

3

Sie acceptance tests für den Übergang zwischen Strecken verwenden sollten. Integrationstests (component tests) werden nur zum Testen der Komponentenfunktionalität unabhängig vom Anwendungsfluss verwendet. Sie bekommen also diesen Fehler, weil es eigentlich keine Routen für Sie gibt.

+0

Danke, ich werde das versuchen. – Lazloman

Verwandte Themen