关于Create React App中测试依赖与Jest使用的两个技术疑问
Create React App 测试相关疑问解答
1. 为什么@testing-library相关包在dependencies而非devDependencies?生产环境需要吗?
Create React App 把这些测试包放在dependencies是它的设计选择,核心逻辑如下:
- 生产环境完全不需要这些测试包。CRA的生产构建流程会自动排除所有测试相关代码与依赖,这些包的代码不会被打包进最终生产产物,不会对生产环境的体积或运行造成任何影响。
- 这样做是为了简化用户流程,确保项目初始化后开箱就能写测试,避免用户还要手动安装测试依赖。即便放在
dependencies,也不会干扰生产环境,因为测试代码本身就不在生产构建的范围内。
2. 没手动安装Jest,为什么能直接用describe、test等全局方法?
这是因为Create React App已经内置了Jest作为默认测试运行器,并且在测试环境启动时,自动将Jest的核心全局API(包括describe、test、expect等)注入到了测试上下文里。你不需要手动安装Jest,也不需要显式导入这些方法,直接在测试文件中使用即可——这些全局变量是CRA预配置好的测试环境默认提供的。
内容的提问来源于stack exchange,提问作者lch
相关产品推荐
相关产品推荐

