Karma/jasmine/pact-js 使用 requirejs 的例子

Karma/jasmine/pact-js example using requirejs

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

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

看问题可以看my example project。给运行吧:

  1. 解压上面示例项目中的 zip 文件
  2. 从 PactTest 目录,运行: npm 安装
  3. 完成后,运行: npm 运行 test:client

干杯, 麦克

您需要将模块名称设置为 "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 以包含关于此的注释。

这是一个 link 更新的 Gist 以供将来参考:https://gist.github.com/mefellows/15c9fcb052c2aa9d8951f91d48d6da54