尝试使用 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/