用酶错误反应笑话测试

Isa*_*tte 4 reactjs jest react-native enzyme

尝试使用笑话和酶测试我的本机应用程序,如下所示。

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();
   });
});
Run Code Online (Sandbox Code Playgroud)

在运行npm test 我得到错误Cannot find module 'enzyme/build/ShallowTraversal' from 'shallow.js'

测试套件无法运行。

请注意,已完成测试的负酶正常运行

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

有什么事吗

Isa*_*tte 5

刚安装首先解决了这个问题enzyme-to-json;npm install --save-dev enzyme-to-json

导入toJson我的test_file.js内部

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
Run Code Online (Sandbox Code Playgroud)

将测试更改为此

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

snapShotSerializers在package.json中更改

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

现在我的测试运行正常。