javascript - requirejs业务模块都是内部函数,无法测试?

 大盗难过就哭_789 发布于 2022-11-08 12:19

正在对一个Hybrid APP的小项目尝试js单元测试。目前碰到的问题是业务代码都是requirejs模块,其中的函数也没有暴露,都是内部函数。
比如:

define(['libs/jquery', '...'], function ($) {
     function init() {
         //init具体实现
     }
    //注册初始化事件
    $(document.body).on('init', '#thisModule', function () {
        init();
    });

};

对上面这段代码,我在使用karma+jasmine+requirejs测试时,在测试文件里,是无法调用到init进行测试的。所以这种情况下,是对init进行改造使得可以被测试文件访问?比如:

define(['libs/jquery', '...'], function ($) {
     var thisModule;
     thisModule.init =function() {
        //init具体实现
    }
    //注册初始化事件
    $(document.body).on('init', '#thisModule', function () {
        init();
    });
    
};

还是放弃测试这些函数,直接比对html中的结果呢?这种方法是不是失去了单元测试的意义?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有