2016-07-30 2 views
2

Ich fange an, eine Test-Suite für einige Elemente in meiner App zu erstellen. Auf der obersten Ebene habe ich ein <my-app> Element und in seiner Vorlage verwendet es ein <my-session Element, Benutzeranmeldung zu steuern und ein <iron-media-query> Element, um zu definieren, wie lange eine Zeichenfolge im App-Header verwendet werden soll.Welchen Befehl müssen Sie Stub, ersetzen und Fixture mit Web Component Tester

Um eine bessere Kontrolle über das Verhalten dieser beiden zu bekommen, und erstelle spezielle Testversionen von ihnen und mit dem replace('my-session').with('test-session') Ansatz, um sie zu ändern. Ich werde auch die stub Funktion verwenden, um die Interaktion mit der Testsuite zu steuern.

Ich habe vollständig durch die docs auf der Polymer-Website zu lesen, aber ich kann nicht herausfinden, ob Sie replace und stub vor oder nach fixture rufen verwenden.

Kann jemand raten

Antwort

2

Ich fand schließlich die Antwort

Beide haben vor der Befestigung instanziiert wird aufgerufen werden. Der Grund dafür ist, dass Stub das Prototyp-Element verändert (dh nachdem es erstellt wurde, aber bevor es in das dom gestempelt wurde, so dass es es vor der Fixture tun muss).

Die Ersetzungsfunktion fügt tatsächlich einen Eintrag in eine Map ein, die verwendet wird, wenn das Fixture instanziiert wird. Es muss also erneut vor dem Fixture Call aufgerufen werden.

Die neueste Version von web-components-tester enthält bis heute keine Korrektur, die es erlaubt, auf sehr verschachtelten Elementen zu arbeiten (zum Beispiel habe ich versucht, mein App-Level-Element und die App-Toolbar zu testen) in der App-Header-Layout wurde nicht erweitert, wenn Ersetzung verwendet wurde, aber das Update ist im Master. Als temporäre Maßnahme habe ich die Master-Version von browser.js in die Kopie kopiert, die im Verzeichnis bower_componenents/web-component-tester verwendet wird.

Ich denke, es gibt immer noch einen Fehler in einigen sehr komplexen Layouts. Ich hatte einen Papier-Toast mit einer Dom-If-Vorlage in seinem Inhalt, die ich versuchte, durch eine Testversion zu ersetzen, die als ein Schein diente, der auch das Etikett in seiner Vorlage hatte. Dies hat nicht funktioniert

Verwandte Themen