使用Mocha进行测试时,如何加载foo.js以便foo-test.js可以测试全局变量,例如giveMeFive()?
foo.js:
function giveMeFive() {
return 'High five!');
}
FOO-test.js:
describe('#convertNumberToDollar()', function() {
it('should get a successful high five', () => {
assert.ok( giveMeFive() === 'High five!', ' successful high five.' );
});
});
如果解决方案可以通过Bamboo自动化,那将是理想的。
答案 0 :(得分:0)
您可以使用import * as thisNameDoesntMatter from 'foo'
或使用es5样式(在这种情况下更干净),require('foo')
和该文件中定义的全局变量将在全局范围内可用。
例如,如果您定义以下JavaScript文件:
//test.js
aGlobalVariable = 'someValue';
let aLocalVariable = 'anotherValue';
export default aLocalVariable;
这是Babel将生成的代码(使用es2015
预设和"node"
环境):
//test-compiled.js
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
global.aGlobalVariable = 'someValue';
var aLocalVariable = 'anotherValue';
exports.default = aLocalVariable;
如您所见,aGlobalVariable
声明保留在模块中。由于整个编译文件在导入时将被评估,因此每当您导入此模块时,aGlobalVariable
将在全局范围内可用(如果您选择了"browser"
环境,则会在{{1}上定义它})。您不需要显式请求导入全局变量。