访问全局变量 JavaScript 单元测试
Access for global variables JavaScript unit testing
你好,我是新 JavaScript 单元测试,我正在使用 Mocha.js 和 Chai.js
我想做的只是弄清楚如何在单独的 js 文件中检查全局变量的值。这是我的代码
这是 main.js 文件(要测试的代码)只有我要测试的变量。
//main.js
var foo = 9;
这是我的测试文件
var assert = require("assert")
var expect = require('chai').expect
var fs = require("fs")
var vm = require("vm")
function include(path){
var code = fs.readFileSync(path,'utf-8');
vm.runInThisContext(code,path);
}
describe('Global', function(){
include('lib/main.js');
it('Should check if value is matching', function(){
expect(foo).to.equal(9);
});
});
同样,我是 JavaScript 中的单元测试新手。任何帮助将不胜感激。我返回的错误是 foo is not defined
,它告诉我它无法访问该变量,那么我该如何访问它呢?预先感谢您的帮助。
你的全局对象通常是window
全局 var foo = "test";
与 window.foo = "test";
或 window['foo'] = "test";
相同
Window在node中mocha是运行时没有定义,但是这个blog post使用"this"结合自调用函数得到相同的结果。
var foo = 9;
没有声明全局变量,它声明了一个局部变量。在 Node.js 中,在模块的最外层范围内声明的局部变量将是该模块的局部变量。
如果你想测试在另一个文件中声明的局部变量的值,最好的办法可能是将该文件的内容读入一个字符串(也许使用 fs.readFileSync
),然后 eval()
字符串,应该在当前范围内定义变量。
只有在文件的最外层作用域中声明局部变量时才有效。例如,如果它是一个函数内的局部变量,那你就不走运了(除非你想做一些粗糙的字符串解析,这会超出理智的范围)。
你好,我是新 JavaScript 单元测试,我正在使用 Mocha.js 和 Chai.js
我想做的只是弄清楚如何在单独的 js 文件中检查全局变量的值。这是我的代码
这是 main.js 文件(要测试的代码)只有我要测试的变量。
//main.js
var foo = 9;
这是我的测试文件
var assert = require("assert")
var expect = require('chai').expect
var fs = require("fs")
var vm = require("vm")
function include(path){
var code = fs.readFileSync(path,'utf-8');
vm.runInThisContext(code,path);
}
describe('Global', function(){
include('lib/main.js');
it('Should check if value is matching', function(){
expect(foo).to.equal(9);
});
});
同样,我是 JavaScript 中的单元测试新手。任何帮助将不胜感激。我返回的错误是 foo is not defined
,它告诉我它无法访问该变量,那么我该如何访问它呢?预先感谢您的帮助。
你的全局对象通常是window
全局 var foo = "test";
与 window.foo = "test";
或 window['foo'] = "test";
Window在node中mocha是运行时没有定义,但是这个blog post使用"this"结合自调用函数得到相同的结果。
var foo = 9;
没有声明全局变量,它声明了一个局部变量。在 Node.js 中,在模块的最外层范围内声明的局部变量将是该模块的局部变量。
如果你想测试在另一个文件中声明的局部变量的值,最好的办法可能是将该文件的内容读入一个字符串(也许使用 fs.readFileSync
),然后 eval()
字符串,应该在当前范围内定义变量。
只有在文件的最外层作用域中声明局部变量时才有效。例如,如果它是一个函数内的局部变量,那你就不走运了(除非你想做一些粗糙的字符串解析,这会超出理智的范围)。