JS:糟糕的业力,数据丢失

时间:2017-08-15 22:28:03

标签: javascript testing karma-runner

我想在这样的文件夹结构中测试一些具有依赖关系(没有ciruclar)的类(每个模块一个):

/src
  /chessmen
     Kings.js (extends ../core/Chessman)
     Pawn.js (extends ../core/Chessman)
     ...
  /core
    Board.js (imports Refs)
    Chessman.js (imports Ray)
    Ray.js
    Refs.js
    Sides.js (imports WindRoses.js)
    WindRoses
  /engine
    RayCaster.js

/test
  /chessmen
    ...
  /core
   ...
  /engine
    RayCaster.js (import src/core/ Refs, sides, King, Queen, board)

使用karma + Jasmine + babel预处理器进行测试时遇到麻烦

如果第一个测试用例导入并使用,说,Sides.js或King.js,似乎" eat"或者以不可能在另一个测试用例中使用导入的模块的方式使用数据

例如,test / engine / RayCaster导入一个Queen模块,但它使用对象{}(空)代替函数Queen(){...}

进行记录

问题

发生了什么?

是否可以在测试用例之间重置导入(或取消它们)

由于karma按字母顺序导入文件,因此可以使用一种test / index.js来执行所有导入并按依赖关系模块顺序调用测试?

编辑:无论您在测试用例中使用哪个符号导入模块,它似乎在其他测试中都不再可用

编辑(2)问题:给定一组绘制依赖树的模块,如何继续逐步测试这棵树,从离开到根?

1 个答案:

答案 0 :(得分:0)

看看你的模块加载器,我建议使用像karma-rollup-preprocessor之类的karma插件在运行测试之前捆绑你的模块。这将捆绑并连接您的模块以进行测试。

您无需在files array下指定所有文件。

files: [
    'test/**/*.js'
],