使用requirejs的{Karma / jasmine / pact-js示例

时间:2017-05-16 00:29:40

标签: requirejs pact

我正在研究karma/jasmine example。它按原样工作正常。我需要让它与requirejs一起工作。当我介绍requirejs并将客户端和客户端规范类转换为AMD时,我开始收到此错误:

PhantomJS 2.1.1(Windows 7 0.0.0)客户端sayHello应该打个招呼失败         TypeError:undefined不是js / client-spec.js中的构造函数(评估' Pact')(第11行)         JS /客户spec.js:11:28

要查看问题,您可以查看my example project。要运行它:

  1. 在上面的示例项目中提取zip文件
  2. 从PactTest目录中运行: npm install
  3. 完成后,运行: npm run test:client
  4. 干杯, 麦克

1 个答案:

答案 0 :(得分:2)

您需要将模块名称设置为" Pact"而不是" pact-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以包含相关说明。

以下是更新的Gist的链接,供将来参考:https://gist.github.com/mefellows/15c9fcb052c2aa9d8951f91d48d6da54