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

发布于 2022-09-04 01:22:11 字数 724 浏览 20 评论 0

正在对一个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中的结果呢?这种方法是不是失去了单元测试的意义?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文