【发布时间】:2016-04-29 22:12:08
【问题描述】:
我想在经过测试的 js 中使用 module.exports 并使用 require() 将其包含到规范脚本中。
cat.js - 包含我要导出的对象的文件
var cat = {
name: "filemon",
meow: function () {
return "miau";
},
walk: function () {
return "siup siup siup";
}
}
module.exports = cat
catTest.js - 猫的规范
var cat = require('../app/cat')
describe("Cat test", function () {
it("cat should meow with miau", function () {
expect(cat.meow()).toBe("miau")
})
})
当我使用 jasmine CLI(使用 npm 下载)运行测试时,测试通过:
marcins-iMac:untitled marcin$ jasmine
Started
..
2 specs, 0 failures
Finished in 0.004 seconds
但是当我尝试使用 karma runner 运行测试时,module 是未定义的:
marcins-iMac:untitled marcin$ karma start
29 04 2016 23:52:29.238:WARN [karma]: No captured browser, open http://localhost:9876/
29 04 2016 23:52:29.248:WARN [karma]: Port 9876 in use
29 04 2016 23:52:29.248:INFO [karma]: Karma v0.13.22 server started at http://localhost:9877/
29 04 2016 23:52:29.252:INFO [launcher]: Starting browser Chrome
29 04 2016 23:52:30.112:INFO [Chrome 50.0.2661 (Mac OS X 10.11.2)]: Connected on socket /#MJ-R1hm8uQEvSJq9AAAA with id 29613373
Chrome 50.0.2661 (Mac OS X 10.11.2) ERROR
Uncaught ReferenceError: module is not defined
at /Users/marcin/WebstormProjects/untitled/app/cat.js:9
我得到的一些想法并没有帮助:
- 将 require.js 添加到 karma.config.js 的“文件”中
- 将测试对象添加到窗口作用域(它很难看,不能使用 CLI)
如果可能是配置问题,github上的项目:https://github.com/marcinmierzejewski1024/jasmine-karma-playground
【问题讨论】:
标签: javascript node.js jasmine karma-runner bdd