ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 测试JS模块是CommonJS还是AMD兼容

2019-07-03 06:24:23  阅读:204  来源: 互联网

标签:javascript unit-testing gruntjs amd commonjs


如果JavaScript模块与CommonJS(Node)或AMD模块格式兼容,有没有办法自动测试?此外,如何将其写为Grunt任务?

兼容性是模块的一个重要特征,应该能够至少在某种程度上自动进行测试.例如,建筑物配置的更改可能会产生一个复杂性错误,单独使用模块的浏览器界面的单元测试无法注意到这一点,就像使用QUnit一样.也许模块的兼容性代码(例如,自制的UMD wrapper)可能非常混乱,很难说代码中其他地方的更改是否会对代码的兼容性部分产生影响.

可以使用生成可能正确的不同模块格式包装器的工具.例如grunt-umduRequire就是这样的工具.但是,由于它们也依赖于构建配置,如何在没有任何测试的情况下确保兼容性真的存在?

解决方法:

我不认为有一个开箱即用的或明显的解决方案.

通常,您可以采取几种方法来解决问题:

>以一种模块格式编写代码,并使用转换器生成其他模块格式. Babel(5)非常擅长这样做,但可能还有其他人.
>使用像esprima这样的解析器并静态分析代码.像https://github.com/umdjs/umd那样的“标准”包装器可能很容易检测到模式.自定义包装可能更难,您可能需要一些修改才能完成.
>试错:让您的grunt任务创建文件(例如,从.jade模板生成),包括您关注的每种方式(AMD,浏览器全局)中的假设模块,然后“运行”那些(例如使用nightwatch)或selenium)并查看是否发生任何错误. (如果您尝试加载的模块具有依赖关系,则可能很难做到正确)

标签:javascript,unit-testing,gruntjs,amd,commonjs
来源: https://codeday.me/bug/20190703/1363863.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有