如何使用 mocha.js 测试纯 JavaScript 模块
How to test pure JavaScript module with mocha.js
我正在尝试测试简单的前端代码。我只想用 mocha 确认 myModule
是 object
并且键 length
大于 0
.
模块定义:
var myModule = (function () {
return {
option: false
};
})();
我正在尝试这样做:
var expect = require('chai').expect;
var myModule = require('<path_to_my_moule_file>');
describe("myModule", function() {
it("is myModule object", function() {
expect(myModule).to.be.a('object');//I know it's not enough
});
it("is myModule not empty", function() {
expect(Object.keys(myModule)).to.have.length.greaterThan(0);
});
});
但这当然行不通。因为我的模块不是我认为的 nodejs 模块,无论如何 myModule
returns 简单 {}
,但不是它的真正价值(我正在尝试字符串等,但它总是 {}
).
我应该如何测试这种代码?
更新:
如果我根本不使用模块怎么办?
测试的js文件可能很简单:
var Config = {isDev: true};
是否可以测试?
谢谢
您可以在模块末尾添加这样的代码:
if ( typeof module === 'object' && module.exports) {
module.exports = myModule;
}
典型的浏览器环境没有在全局 space 中定义 module
,因此如果您在 Node.运行 中,这将导出您的模块。
我正在尝试测试简单的前端代码。我只想用 mocha 确认 myModule
是 object
并且键 length
大于 0
.
模块定义:
var myModule = (function () {
return {
option: false
};
})();
我正在尝试这样做:
var expect = require('chai').expect;
var myModule = require('<path_to_my_moule_file>');
describe("myModule", function() {
it("is myModule object", function() {
expect(myModule).to.be.a('object');//I know it's not enough
});
it("is myModule not empty", function() {
expect(Object.keys(myModule)).to.have.length.greaterThan(0);
});
});
但这当然行不通。因为我的模块不是我认为的 nodejs 模块,无论如何 myModule
returns 简单 {}
,但不是它的真正价值(我正在尝试字符串等,但它总是 {}
).
我应该如何测试这种代码?
更新:
如果我根本不使用模块怎么办? 测试的js文件可能很简单:
var Config = {isDev: true};
是否可以测试?
谢谢
您可以在模块末尾添加这样的代码:
if ( typeof module === 'object' && module.exports) {
module.exports = myModule;
}
典型的浏览器环境没有在全局 space 中定义 module
,因此如果您在 Node.运行 中,这将导出您的模块。