2017-05-16 50 views
0

我正在致力於karma/jasmine example。它工作正常。我需要讓它與requirejs一起工作。當我介紹requirejs並將客戶端和客戶端規範類轉換爲AMD時,我開始出現此錯誤:Karma/jasmine/pact-js使用requirejs的示例

PhantomJS 2.1.1(Windows 7 0.0.0)客戶端說你好應該說你好失敗 TypeError:undefined不是(第11行) js/client-spec.js:11:28

要查看問題,您可以查看my example project。要運行它:

  1. 把zip文件解壓在我的例子項目上面
  2. 從PactTest目錄,運行: NPM安裝
  3. 之後完成,運行: NPM運行測試:客戶

乾杯, 邁克

+0

我不能確定你使用正確requirejs和我相當肯定,你所看到的問題是因爲配置有不爲你正在嘗試做的事情設置好。 –

回答

1

您需要的模塊名稱設置爲「公約」,而不是「條約的Web」。看來requirejs找不到匹配的模塊名稱。

client-spec.js變化define到:

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

test-main.js更新的配置如下:

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 
}) 

誠然,我不完全理解RequireJS的來龍去脈,但是這確實有效。

我已更新Pact documentation以在其中包含註釋。

這裏是一個更新的要點以供將來參考鏈接:https://gist.github.com/mefellows/15c9fcb052c2aa9d8951f91d48d6da54