0

Ich schreibe einen Test für Code, der das DOM manipuliert, und ich wollte es in einer Browserumgebung ausführen, und ich weiß nicht wie.Wie kann ich einen Komponententest in einer Browserumgebung ausführen?

schrieb ich einen Mock-up-Test der Test Bibliothek AVA, für meine kleine Bibliothek promisify-dom-selector mit:

const test = require('ava') 
const promisifyDOMSelector = require('index.js') 

test('pGetElementById works', t => { 
    const pGetElementById = promisifyDOMSelector(document.getElementById) 

    pGetElementById('load-later') 
    .then((el) => { 
     t.deepEqual(el, document.getElementById('load-later')) 
    }) 

    const testEl = document.createElement('div') 
    testEl.id = 'load-later' 
    document.body.appendChild(testEl) 
}) 

und wollte es in Headless Chrome laufe.

Ich habe versucht, Karma mit der ava-Plugin karma-ava Einrichtung, aber es ist nicht einmal zu arbeiten, hier ist die Fehlermeldung:

Ich würde nicht mit dem Karma Weg gehen, wenn möglich Aber ich weiß es nicht anders! Was kann ich tun?

+0

Blick in casperjs. Casper ist ein Wrapper für Phantomjs und macht all die Dinge, die Sie suchen. – archae0pteryx

+0

Ich habe gerade den Artikel für Sie: https://developers.google.com/web/updates/2017/06/headless-karma-mocha-chai. Viel Glück –

+0

@TravelingTechGuy Ja, ich habe versucht, den Weg dieses Artikels und Karma zu verwenden, aber es funktionierte nicht mit Ava – Pontiacks

Antwort

1

Wenn Sie nicht benötigen tatsächlich Test in einem Browser dann die browser testing Rezept enthält einige hilfreiche Zeiger.

https://github.com/avajs/karma-ava hat seit über einem Jahr keine Arbeit mehr gesehen, also bin ich nicht überrascht, wenn das nicht funktioniert.

Wenn Sie Ihren Code in einem tatsächlichen Browser ausführen müssen, verwende ich http://www.nightmarejs.org/ oder etwas mit einem HTML-Dokument, das Sie von AVA steuern können, um Ihre Bibliothek zu testen.

+0

Ja, ich wusste über Albtraum.js, wollte aber HeadlessChrome verwenden, weil frischer ist. Auch Chromeless hat die gleiche API von nightmare.js – Pontiacks

+0

In Ordnung, versuchte Browser-env wie das Rezept sagte, lief in das Problem https://github.com/tmpvar/jsdom/issues/639. Auch versucht Mocha und es hat Probleme mit async/erwarten. Also ich denke, Fuck-Tests für dieses Repo. Danke für die Hilfe trotzdem. – Pontiacks

Verwandte Themen