gpt4 book ai didi

unit-testing - Typescript 中导入/需要和引用标签之间的区别是什么

转载 作者:搜寻专家 更新时间:2023-10-30 21:14:40 24 4
gpt4 key购买 nike

我正在尝试使用 Mocha 测试一些前端 Typescript 代码。问题是,我在 Webstorm 中使用 Typescript 引用标签进行智能感知来解析我的前端代码。我必须使用 requireJS 在浏览器中加载文件,因为引用标签不这样做。到此为止,我能够得到。

但是,我想用 Mocha 测试代码 - 这就是问题开始的地方。 Mocha 测试文件似乎与被测试的代码无关,除非它使用 import/require 语句导入,即使已添加 Typescript 引用标签。如果,我尝试将正在测试的ts文件中的代码导出,并在Mocha Unit Test文件中导入,那么其他包含前端代码的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 项目。请帮助我理解这里的依赖关系是如何工作的,以及我怎样才能解决/简化这个问题。

如果有适合此类项目的更好且同样强大的框架可以提供单元测试(和端到端测试),请提出建议。

最佳答案

最简单的解决方案:在前端使用 AMD(不是引用合并),在 mocha 上使用 CommonJS。明显的缺点是您需要编译代码两次,一次是在运行前端时,一次是在运行 mocha 时。 mocha 案例生成的 JS 会和 frontend 案例生成的 JS 不同。您可能希望使用 --outDir 来区分这两种情况。

关于unit-testing - Typescript 中导入/需要和引用标签之间的区别是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21077539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com