JavaScript测试一个简单模块
JavaScript Testing a Simple Module
我是JavaScript的新手,我试图理解为什么Jasmine-Node告诉我stringCalc
在明确定义时没有方法add
。是添加不附加到对象,还是有一些东西,我错过了,只要需要生产文件?
代码:
var stringCalc = (function() {
return {
add: function(string) {
return 0;
}
};
})();
规范:
var stringCalc = require("../lib/calc");
describe("String Calculator", function() {
it("should return zero if empty", function() {
expect(stringCalc.add("")).toEqual(0);
});
});
在spec文件中,stringCalc变量被重新定义为保存从calc.js文件导出的任何内容。您的代码模块(calc文件)不导出任何东西,因此您通过要求它得到的东西没有add方法。您可以通过在测试文件中记录require语句的结果来看到这一点:
var stringCalc = require("./calc");
console.log(stringCalc);
将这个写入控制台:
{}
要使代码模块中的内容可用,必须导出它们。有几种方法可以做到这一点,例如:
exports.add = function(string) {
return 0;
}
有了这些代码,测试就像您写的那样通过了。如果你想把它包装在一个自动执行的函数中,这样就不会弄乱全局作用域,你只需要把整个东西包装起来:
(function() {
// private code here; this stuff is not exported
var s = 'foo';
var helperFunction = function() {
// ...
}
exports.add = function(string) {
return 0;
}
})();
相关文章:
- Moment/Jquery-一个简单时间线的愚蠢问题
- 问题用moment JS制作一个简单的时间表
- 测试一个简单的javascript按钮
- 用Jquery map和moment js制作一个简单的时间线
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 调试一个简单的jQuery函数;想知道是否与其他代码冲突
- 一个简单的粘性头jQuery脚本的问题
- Sencha Touch使一个简单的按钮工作
- html表单,它有文本和表,现在我想在一个简单的文本文件中保存和检索数据,如何实现它
- 如何在Javascript中定义一个简单的自动重启倒计时
- 如何使一个简单的HTML文件成为wordpress中可用的页面
- 如何用D3添加一个简单的圆弧
- angularjs做一个简单的倒计时
- 创建一个简单的处理 p5.js 库
- 是否有一个简单的 JQuery 过程来替换页面上每段内部文本的字符串
- 如何在构造函数中创建一个简单的DOM元素,并在调用时将其附加到元素中
- 是否可以将PHP的一个简单片段重新编码为javascript
- 尝试创建一个简单的求和计算器
- 如何使用jquery添加一个简单的转换
- 正在寻找一个简单的JavaScriptHTMLGUI构建器,我可以将其嵌入到我的网站中