访问“全球”使用 require.js 时 mocha.js 的功能
我将 Mocha.js 与基于 Require.js 的网站的优秀 使用 shim 结合在一起。
使用 Require.js 时如何访问 Mocha 声明的 Define() 和 it() BDD 函数?
下面是一个基本的代码示例:
test.js:
var mocha = require('use!mocha')
, testFile = require('testFile.js')
mocha.setup('bdd');
mocha.run();
testFile.js:
define(function(require) {
// describe() and it() are not available
describe('Book', function() {
it('should have pages', function() {
});
});
});
在浏览器中运行时,出现错误 Uncaught ReferenceError:describe is not Define
。
我尝试过 window.describe 并尝试将 require('testFile.js') 移至 mocha.setup('bdd') 之后。我知道我错过了一些东西。可能以某种方式将上下文传递给摩卡。
I am including Mocha.js with the excellent use shim for a Require.js-based site.
How do I access the define() and it() BDD functions declared by Mocha when using Require.js?
Here is a basic code example:
test.js:
var mocha = require('use!mocha')
, testFile = require('testFile.js')
mocha.setup('bdd');
mocha.run();
testFile.js:
define(function(require) {
// describe() and it() are not available
describe('Book', function() {
it('should have pages', function() {
});
});
});
I get the error Uncaught ReferenceError: describe is not defined
when running in the browser.
I have tried window.describe and tried moving the require('testFile.js') to after the mocha.setup('bdd'). I know I am missing something. Probably passing the context to mocha somehow.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题是
describe
和it
等全局函数是由mocha.setup()
设置的。您可以在导出 mocha 之前使用 shim 配置的init
属性调用mocha.setup()
。测试文件需要需要 mocha。
Shim 配置的
init
属性在 RequireJS 2.1。您可以使用exports
属性代替init
和 RequireJS 2.0。The problem is that the global functions such as
describe
andit
are set up bymocha.setup()
. You can use shim config'sinit
property to callmocha.setup()
before mocha is exported.Test files need to require mocha.
Shim config's
init
property was introduced in RequireJS 2.1. You might be able to useexports
property instead ofinit
with RequireJS 2.0.我在 geddski 的 amd-testing Examples 项目中找到了解决方案。
不要将测试文件与 mocha 一起包含在顶部,如下所示:
测试文件应作为另一个 require 调用包含在内,并将 mocha.run() 嵌入回调中:
I found the solution in geddski's amd-testing examples project.
Instead of including the test file(s) at the top along with mocha like so:
The test file(s) should be included as another require call and mocha.run() embedded in the callback: