我正在尝试使用Mocha测试一些前端的Typescript代码。问题是,我在Webstorm的intellisense中使用Typescript引用标记来解析我的前端代码。我必须使用requireJS在浏览器中加载文件,因为引用标记不会这样做。到目前为止,我能够得到。
但是,我想用Mocha测试代码 - 这是问题的开始。 Mocha测试文件似乎与正在测试的代码无关,除非使用import / require语句导入,即使已添加了Typescript引用标记。如果,我尝试导出正在测试的ts文件中的代码,并将其导入Mocha单元测试文件,那么包含前端代码的其他ts文件将无法再解析它。
考虑这种情况:
TS File A references TS File B using Typescript reference tags.
Mocha Unit Test X tries to reference TS file B using reference tags, which does not work.
Mocha Unit Test X tries to reference TS file B using import/require statments, which requires that code in TS file B be "exported".
If TS file B is "exported" then File A can't reference it anymore.
由于我试图用Mocha测试一个Typescript / NodeJS项目,我有点陷入即将到来的荒谬的依赖管理系统。请帮助我理解依赖关系在这里是如何工作的,如何解决/简化。
如果有一个更好,同样强大的框架适合这种可以提供单元测试(以及端到端测试)的项目,请建议。
答案 0 :(得分:0)
最简单的解决方案:在前端使用AMD(非参考合并)和在mocha上使用CommonJS。明显的缺点是你需要编译你的代码两次,一次是在运行前端时,另一种是在运行mocha时。在mocha案例中生成的JS与在前端案例中生成的JS不同。您可能希望使用--outDir
来分隔这两种情况。