【发布时间】:2012-04-29 13:08:35
【问题描述】:
这似乎应该非常简单;然而,经过两个小时的阅读和试错没有成功,我认输并问你们!
我正在尝试使用 Mocha 和 Should.js 来测试一些 JavaScript 函数,但我遇到了范围界定问题。我已将其简化为最基本的测试用例,但我无法使其正常工作。
我有一个名为functions.js 的文件,其中只包含以下内容:
function testFunction() {
return 1;
}
还有我的tests.js(位于同一文件夹中)的内容:
require('./functions.js')
describe('tests', function(){
describe('testFunction', function(){
it('should return 1', function(){
testFunction().should.equal(1);
})
})
})
此测试失败并返回 ReferenceError: testFunction is not defined。
我明白为什么,因为我发现的大多数示例要么将对象和函数附加到节点 global 对象,要么使用 module.exports 导出它们——但是使用这两种方法中的任何一种都意味着我的函数代码会抛出错误在标准浏览器情况下,这些对象不存在。
那么如何在不使用特定于节点的语法的情况下访问在独立脚本文件中声明的独立函数?
【问题讨论】:
-
你在你的functions.js中使用
exports.testFunction = testFunction了吗? -
不,显示
functions.js的全部内容。请再读一遍这个问题——我特别声明我不想想在源文件中使用节点特定的语法。
标签: javascript unit-testing node.js mocha.js