我试着测试简单的前端代码。我只想和摩卡确认一下,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返回简单的{},但不是它的实际值(我正在尝试字符串等,但它总是{})。我应该如何测试这类代码?
更新
如果我根本不使用模块呢?经过测试的js文件可能非常简单:
var Config = {isDev: true};是可测试的吗?
谢谢
发布于 2015-09-15 10:26:20
您可以在模块的末尾添加这样的代码:
if ( typeof module === 'object' && module.exports) {
module.exports = myModule;
}一个典型的浏览器环境没有在全局空间中定义module,所以如果您在Node中运行,这将导出您的模块。
https://stackoverflow.com/questions/32578774
复制相似问题