Dav*_*ani 8 javascript unit-testing reactjs jestjs react-native
有没有可能使用Jest与多个预设,比如jsdom和react-native?
我想测试一个可以在Web和React Native环境中工作的React组件.问题是该组件可能使用React Native库或某些文档的方法.
当我运行一些测试时,jest回复:
无法从'react-native-implementation.js'中找到模块'NetInfo'
当我尝试添加
"jest": {
"preset": "react-native"
}
Run Code Online (Sandbox Code Playgroud)
to package.json,我得到:
ReferenceError:未定义窗口
Jus*_*ple 19
同样,您可以使用扩展运算符执行此操作:
const tsPreset = require('ts-jest/jest-preset')
const puppeteerPreset = require('jest-puppeteer/jest-preset')
module.exports = {
...tsPreset,
...puppeteerPreset,
globals: {
test_url: `http://${process.env.HOST||'127.0.0.1'}:${process.env.PORT||3000}`,
},
}
Run Code Online (Sandbox Code Playgroud)
Ily*_*nov 14
预设只是普通的Javascript对象,所以在很多情况下你可以简单地合并它们.例如,这就是我如何启用ts-jest和jest-puppeteer同时:
const merge = require('merge')
const ts_preset = require('ts-jest/jest-preset')
const puppeteer_preset = require('jest-puppeteer/jest-preset')
module.exports = merge.recursive(ts_preset, puppeteer_preset, {
globals: {
test_url: `http://${process.env.HOST || '127.0.0.1'}:${process.env.PORT || 3000}`,
},
})
Run Code Online (Sandbox Code Playgroud)
如果某些选项无法像这样"合并",只需手动处理这些情况.
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |