2016-10-26 3 views
3

Ich habe Hunderte von Polymer-Test-Suiten. Am Ende jedes Tests möchte ich auf das DOM zugreifen, um einige benutzerdefinierte Qualitätsprüfungen durchzuführen.Web Component Tester: Zugriff auf das DOM

Würde das Schreiben eines Wct-Plugins funktionieren? Wenn ja, wie sollte ich von einem Plugin auf das DOM zugreifen?

Vielen Dank im Voraus!

Antwort

2

Kein Plugin erforderlich. Sie könnten bereits mit den nativen DOM-APIs (z. B. el.querySelector()) oder mit Polymerinstanzverfahren (z. B. el.$$() oder el.getEffectiveChildren()) auf das DOM der Testvorrichtung zugreifen. Ich überprüfte diese mit Shady und Schatten Dom auf Chrome 53 und 56.

In diesem Beispiel wird ein paar DOM bezogene Aussagen zu afterEach(), die nach jedem Test läuft:

<test-fixture id="basic"> 
    <template> 
    <my-app></my-app> 
    </template> 
</test-fixture> 

<script> 
    describe('my-app', function() { 
    var el; 

    beforeEach(function() { 
     el = fixture('basic'); 
    }); 

    afterEach(function() { 
     expect(el.$$('h2').textContent).to.have.string('Hello'); 
     expect(el.querySelectorAll('*')).to.have.lengthOf(2); 
    }); 

    it('instantiating the el works', function() { 
     expect(el.is).to.equal('my-app'); 
    }); 
    }); 
</script> 
+0

Gibt es eine Möglichkeit, diese afterEach anzuwenden global zu allen meinen Test-Suiten? Ich habe Hunderte von ihnen. Es wäre nicht effizient, jeden manuell einzustellen. – x74x61

+1

Sie könnten einen Wrapper für 'describe()' hinzufügen, der ein 'afterEach()' hat, und Ihre Testdatei refs zu 'describe()' mit Ihrem Wrapper ersetzen. Du solltest das als eine neue Frage für [tag: mocha] stellen, um eine definitive Antwort zu bekommen. – tony19

Verwandte Themen