单元测试Javascript匿名函数
Unit testing Javascript anonymous functions
我的应用程序中的$scope函数中有一些匿名函数。这些是匿名的,因为我只需要它们在页面加载时运行一次(它们确实这样做了)。在这些匿名函数中,我将$scope.itemSuccess
变量设置为true并返回;当满足某些规范时(不重要)。这些匿名函数还增加了$scope.counter;
我不知道如何在jasmine单元测试中针对这些匿名函数。我需要确保他们正确执行逻辑,并适当地增加计数器。
首先,您需要以某种方式访问测试中的匿名函数,因此必须将它们分配给变量或命名。
完成此操作后,要测试它们,您有两个选项:将测试放在闭包(主函数)本身中,或者向引用要测试的函数的闭包中添加代码。
不幸的是,由于显而易见的原因,第一个选项不太好,第二个选项会使API膨胀。但正如PhilipWalton在他的博客文章中出色地解释的那样,您可以使用选项二,在API中明确地调用测试,然后将其作为构建过程的一部分删除。
Philip在他的帖子中详细介绍了很多,我建议你阅读,但这里有一个快速的快照可以让你开始:
function closure(){
// public variables here
var publicVariable1 = 1;
var publicVariable2 = 2;
return {
publicVariable1 : publicVariable1,
publicVariable2 : publicVariable2,
__tests__: {
add: add,
subtract: subtract
}
};
// private methods you do not wish to expose (but must for unit testing purposes).
function add(a,b){
return a + b;
};
function subtract(a,b){
return a - b;
}
}
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery