在本作业中,test.js测试用例需要引用 js/list.js 和 quz/quz.js,但是我发现引用方式是配置在karma.conf.js的files里,比如
#karma.conf.js
files: [
'node_modules/should/should.js',
'js/*.js',
'quz/*.js',
'test/*.js'
],
这样存在的一个问题,就是,当项目功能模块变多,测试用例变多时,很难管理各个模块的依赖,因为我们更希望在test.js中以require('../quz/quz')的形式来引用quz。
但是当karma模拟的是浏览器的运行环境时,采用require的语法会报错,因为浏览器不支持cjs语法。
目前想到的方法有:
方法一、 使用rollup up等工具将项目代码转化为amd(define)风格代码,然后在karma中配置karma-requirejs来支持amd语法
方法二、像本作业的模块引用方式一样,把所有依赖包全部配置在karma.conf.js的files里,此时需要把代码中的require(...)去除掉。
然后真正的项目是如何处理这个问题的呢?真正的项目应该不会采用方法二这种方式吧?
在本作业中,test.js测试用例需要引用 js/list.js 和 quz/quz.js,但是我发现引用方式是配置在karma.conf.js的files里,比如
这样存在的一个问题,就是,当项目功能模块变多,测试用例变多时,很难管理各个模块的依赖,因为我们更希望在test.js中以
require('../quz/quz')的形式来引用quz。但是当karma模拟的是浏览器的运行环境时,采用require的语法会报错,因为浏览器不支持cjs语法。
目前想到的方法有:
方法一、 使用rollup up等工具将项目代码转化为amd(define)风格代码,然后在karma中配置karma-requirejs来支持amd语法
方法二、像本作业的模块引用方式一样,把所有依赖包全部配置在karma.conf.js的files里,此时需要把代码中的require(...)去除掉。
然后真正的项目是如何处理这个问题的呢?真正的项目应该不会采用方法二这种方式吧?