requirejs业务模块都是内部函数,无法测试?
正在对一个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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论