javascript – 在使用Jest测试时使用webpack导入图像时,酶渲染失败
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在使用Jest测试时使用webpack导入图像时,酶渲染失败,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1687字,纯文字阅读大概需要3分钟。
内容图文
我想测试一个简单的组件是否渲染(因为我还在搞清楚Jest).应用程序本身使用webpack加载图像以显示徽标.
当我尝试挂载/渲染/浅化无状态组件时,Jest会抛出错误.
FAIL src/components/blog/blogList.spec.jsx
● Test suite failed to run
/home/requinard/Projects/manus-frontend/src/img/manus_logo.png: Unexpected character '?' (1:0)
> 1 | ?PNG
| ^
2 |
3 |
4 | IHDR??G} pHYs.#.#x??vtEXtSoftwareAdobe ImageReadyq?e<K?IDATx??] \?????=)DY
它似乎正试图加载图像而失败了.如何阻止Jest加载任何组件的图像,或者让它加载图像以便它仍然可以渲染.
无状态组件:
import React from 'react';
PropTypes from 'prop-types';
import { BlogPostHeader } from './blogPostHeader';
import './blog.scss';
export const BlogList = props => (
<div className="blog-list">
{props.posts.map((post, key) => <BlogPostHeader post={post} key={key} className="blog-list-item" />)}
</div>
);
BlogList.propTypes = {
posts: PropTypes.array,
};
对无状态组件的测试
import React from 'react';
import { render } from 'enzyme';
import { BlogList } from './BlogList';
describe('<BlogList >', () => {
it('should render in enzyme', () => {
const wrapper = render(<BlogList />);
expect(wrapper).toBeTruthy();
});
});
渲染图像的组件(简化):
import logo from '../img/logo.png';'
<div className="logo-container"><img src={logo} className="logo-child" /> </div>
解决方法:
对于模拟图像和其他静态资产,它们实际上在wiki中有一个项目.
https://facebook.github.io/jest/docs/webpack.html
我没有注意到< rootDir>被Jest取代,你必须自己包含它.
所以用文件结构
config jest fileMock.js
styleMock.js
src |
package.json
我必须在package.json中包含以下行
"moduleNameMapper": {
"\\.(css|scss|less)$": "<rootDir>/config/jest/styleMock.js",
"\\.(png|jpg|gif|ttf|eot|svg)$": "<rootDir>/config/jest/fileMock.js"
}
内容总结
以上是互联网集市为您收集整理的javascript – 在使用Jest测试时使用webpack导入图像时,酶渲染失败全部内容,希望文章能够帮你解决javascript – 在使用Jest测试时使用webpack导入图像时,酶渲染失败所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。