react-native - 玩笑测试失败“无法从 SignInOrRegister.js 中找到模块 'images/myimage.png'”,图像大小类为 @1x、@2x、@3x、@4x
问题描述
添加多个尺寸类别的图像后,我在 Jest 中的快照测试失败。
在文件SignInOrRegister.js中,我定义了一个图像,如下所示:
<Image source={require('./images/myimage.png')} />
在图像中,我有多个尺寸的相同图像,如下所示:
myimage@1x.png
myimage@2x.png
myimage@3x.png
myimage@4x.png
当我运行我的笑话快照测试时,它失败了。这是测试:
import React from 'react';
import renderer from 'react-test-renderer';
import SignInOrRegister from '../SignInOrRegister';
test('renders correctly', () => {
const tree = renderer.create(<SignInOrRegister />).toJSON();
expect(tree).toMatchSnapshot();
});
这是我在运行它时遇到的错误:
> jest tests --updateSnapshot
FAIL src/pages/__tests__/SignInOrRegister.test.js
● Console
console.error node_modules/react-test-renderer/cjs/react-test-renderer.development.js:8060
The above error occurred in the <SignInOrRegister> component:
in SignInOrRegister (at SignInOrRegister.test.js:6)
Consider adding an error boundary to your tree to customize error handling behavior.
Visit to learn more about error boundaries.
● renders correctly
Cannot find module './images/myimage.png' from 'SignInOrRegister.js'
25 | <View style={styles.logoViewStyle}>
26 | <Image
> 27 | source={require('./images/myimage.png')}
| ^
28 | style={styles.logoStyle}
29 | />
30 | </View>
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:221:17)
at SignInOrRegister.render (src/pages/SignInOrRegister.js:27:19)
at finishClassComponent (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6625:31)
at updateClassComponent (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:6588:10)
at beginWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:7413:16)
我似乎在任何地方都找不到像这样的任何其他问题。
解决方案
解决方案是将图像命名为:
myimage.png
myimage@2x.png
myimage@3x.png
myimage@4x.png
所以第一张图片不应该有@1x
每当图像发生更改时,还建议重新启动 Metro bundler,构建您的应用程序,然后再次运行快照测试。
推荐阅读
- javascript - 带有 scss 类的 Ionic 4 D3 样式
- r - 使用带有计数和百分比的 Plotly 在 R 中打开饼图/甜甜圈图
- scala - 这个 Scala 流如何使用 16 个线程?
- macos - OS X CMake:可使用替代包名称执行
- ruby - 如何运行最简单的单元测试
- c++ - 来自不同位置的数组输出的执行时间
- reactjs - 在 React Compoment 中有条件地使用 Gatsby Link
- javascript - 为什么调用api时必须返回函数,而在express(KeystoneJs)中调用视图控制器时却不能?
- javascript - Firestore.settings() 需要一个参数,但所有参数在文档中都是可选的?
- ios - 如何将 CALayer 显示限制为子矩形