2017-02-17 1 views
0

Ich baue eine Bibliothek, die Backbone als Basis verwendet. Meine Bibliothek hat eine View-Klasse, die eine Erweiterung von Backbone.View ist. Es hat ein HTML-Element als eine Eigenschaft davon. Ich habe eine Reihe neuer Funktionen in der Ansicht und möchte sie mit Praktikanten testen.Wie teste ich eine Ansicht Bibliothek in intern.js?

Das Problem ist, dass ich keinen Weg finden kann, das DOM von intern selbst zu verweisen. Die einzige Möglichkeit, dies zu sehen, besteht darin, eine entfernte URL einer separaten HTML-Seite zu öffnen und dieses DOM mit leadfoot abzufragen. Diese Methode eignet sich hervorragend für eine Website, auf der Sie bestimmte Seiten aufrufen, um Ihre Website zu testen. Ich versuche jedoch, eine Bibliothek zu erstellen. Daher ist es nicht erforderlich, separate Seiten zu verwenden, um die Kernfunktionen einer Bibliothek zu testen.

Gibt es eine Möglichkeit, eine Ansichts-Bibliothek zu testen, ohne den gesamten Code in Dummy-HTML-Dateien zu speichern, um sie mit dem Fußpfad zu öffnen?

Antwort

1

Sicher, Sie haben ein paar Optionen, die beide Schreiben Komponententests beinhalten (nicht Funktionstests). Eine besteht darin, Komponententests in einem Browser direkt unter Verwendung von Intern client.html auszuführen, die andere ist, sie in einem Browser unter Verwendung von WebDriver (intern-runner) auszuführen.

Ihre Komponententests laden alle Klassen, die Sie testen möchten, instanziieren Instanzen davon, stellen Assertionen usw. her. Da Ihre Komponententests in einem Browser ausgeführt werden, haben sie Zugriff auf das DOM.

Beachten Sie, dass Ihre Tests keine Testseiten laden, sie laden Codemodule. So ein Test etwas aussehen könnte:

define([ 
    'intern!object', 'intern/chai!assert', 'app/View' 
], function (registerSuite, assert, View) { 
    var view; 

    registerSuite({ 
     name: 'app/View', 

     afterEach: function() { 
      // cleanup the view after each test 
      view.remove(); 
      view = null; 
     }, 

     someTest: function() { 
      var view = new View(); 
      // run tests on the view 
     } 
}); 

Um Ihre Tests mit WebDriver ausführen, geben Sie es in suites statt functionalSuites in Ihrem intern Config, dann Intern in WebDriver Modus laufen (intern-runner oder intern run -w).

Um Ihre Tests im Browser-Client, starten Sie einen statischen Server basierte in Ihrem Projektverzeichnis (intern serve bei Verwendung von intern-cli), öffnen Sie einen Browser, zu führen und zu http://localhost:<port>/node_modules/intern/client.html?config=tests/intern (vorausgesetzt, Ihr Test Config bei tests/intern.js ist) sehen.

+0

Funktioniert gut! Vielen Dank! –

Verwandte Themen