我正在研究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。要运行它:
干杯, 麦克
答案 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