2017-05-16 4 views
0

Ich arbeite an der karma/jasmine example. Es funktioniert gut wie es ist. Ich muss es mit Requirejs arbeiten lassen. Wenn ich requirejs und wandeln die Client und Client-spec Klassen zu AMDs vorstellen, beginne ich diesen Fehler:Karma/Jasmin/Pact-Js Beispiel mit Requirejs

PhantomJS 2.1.1 (Windows 7 0.0.0) sollte Kunde sayHello sagen hallo FAILED Typeerror: undefined ist kein Konstruktor in js/Client-spec.js (Zeile 11) js/Client-spec.js ('Pakt' Bewertung): 11: 28

das Problem zu sehen, können Sie bei my example project suchen. Um es zu laufen:

  1. die Zip-Datei in meinem Beispielprojekt Auszug oben
  2. Vom PactTest Verzeichnis ausführen: npm installieren
  3. Danach beendet ist, laufen: npm Lauftest: Client

Cheers, Mike

+0

Ich bin nicht sicher, Sie verwenden requirejs richtig und ich bin ziemlich sicher, dass die Probleme, die Sie sehen, ist, weil die Konfiguration nicht hat wurde richtig für das festgelegt, was Sie versuchen zu tun. –

Antwort

1

Sie müssen die Modulnamen zu "Pakt" statt "Pakt-web" setzen. Es scheint, dass requirejs den passenden Modulnamen nicht finden kann.

In client-spec.js Änderung der define zu:

define(['client', 'Pact'], function (example, Pact) { 

In test-main.js Update die Config wie folgt:

require.config({ 
    baseUrl: '/base', 
    paths: { 
     // 'pact-web': 'node_modules/pact-web/pact-web', <-- not this 
     'Pact': 'node_modules/pact-web/pact-web', 
     'client': 'js/client' 
    }, 
    deps: allTestFiles, 
    callback: window.__karma__.start 
}) 

Zugegeben, ich habe nicht in vollem Umfang die Ins und Outs der RequireJS verstehen, aber diese funktioniert.

Ich habe die Pact documentation aktualisiert, um eine Notiz zu diesem Thema hinzuzufügen. Hier

ist ein Link zu einer aktualisierten Gist für die Zukunft: https://gist.github.com/mefellows/15c9fcb052c2aa9d8951f91d48d6da54