单元测试Javascript匿名函数

兴奋的

我的应用程序中的$ scope函数内部有一些匿名函数。这些是匿名的,因为我只需要它们在页面加载时就运行一次(它们确实这样做)。在这些匿名函数中,我将一个$scope.itemSuccess变量设置为true并返回;当满足某些规格时(不重要)。这些匿名函数还会增加一个$scope.counter;

我不确定如何在茉莉花单元测试中将这些匿名函数作为目标。我需要确保它们正确执行了逻辑,并且适当地增加了计数器。

马特

首先,您需要以某种方式访问​​测试中的匿名函数,因此必须将它们分配给变量或命名它们。

完成此操作后,要测试它们,您有两个选择:将测试放在闭包(您的主函数)本身中,或者将代码添加到引用您要测试的函数的闭包中。

不幸的是,由于明显的原因,第一个选项并不理想,第二个选项使您的API膨胀。但是,正如Philip Walton在其博客文章所作的出色解释所说明的那样,您可以通过在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;
        }
   }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章