reactjs - react Jest 测试与 enzyme 错误

标签 reactjs react-native enzyme jestjs

尝试使用 Jest 和 enzyme 测试我的 react native 应用程序,如下所示。

import 'react-native';
import React from 'react';
import renderer from 'react-test-renderer';
import { shallow } from 'enzyme';

import { SignUp } from '../../src/pages';

describe('Testing SignUp component', () => {
  it('renders as expected', () => {
    const wrapper = shallow(
        <SignUp />
     );
    expect(wrapper).toMatchSnapshot();
   });
});

运行npm test时出现错误无法从“shallow.js”找到模块“enzyme/build/ShallowTraversal”

测试套件运行失败。

请注意,测试完成后减去 enzyme 即可正常运行

test('SignUp Page renders correctly', () => {
    const tree = renderer.create(<SignUp />).toJSON();
    expect(tree).toMatchSnapshot();
});

可能出了什么问题?

最佳答案

刚刚通过首先安装enzyme-to-json解决了问题; npm install --save-dev enzyme 转 json

在我的 test_file.js 中导入了 toJson

import 'react-native';
import React from 'react';
import renderer from 'react-test-renderer';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json'; //added this line

将测试更改为这样

describe('Testing SignUp component', () => {
  it('renders as expected', () => {
    const wrapper = shallow(
      <SignUp />
    );
   expect(toJson(wrapper)).toMatchSnapshot(); //edited this line
 });
});

更改了 package.json 中的 snapShotSerializers

"preset": "react-native",
"collectCoverage": true,
"collectCoverageFrom": [
  "**/src/**.{js,jsx}"
],
"snapshotSerializers": ["enzyme-to-json/serializer"] //added this line

现在我的测试运行正确。

关于reactjs - react Jest 测试与 enzyme 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47871362/

相关文章:

android - React Native RCTNetworking.sendRequest 有 6 个参数,预期为 7

javascript - 上一篇状态不一致

reactjs - 如何使用Create React App实现skipWaiting?

react-native - 使用 setRoot 与 setStackRoot

javascript - 获取货币符号的特殊文本字符的 HTML 实体代码

reactjs - 是否可以在 React 片段上使用 Enzyme 的快照?

javascript - 如何模拟 jest/enzyme 测试的 css 导入?

javascript - enzyme 包含具有状态的匹配元素

javascript - 如何在 React 渲染中优化 HTML 标记

reactjs - 类型 'typeof test' 的参数不可分配给类型 'Component<{ children?: ReactNode; } & DispatchProp<any>>' 的参数