在 React Native 中,如何使用浅渲染测试我的组件?

IT技术 reactjs react-native
2021-05-16 17:04:04

对于React,我使用浅渲染技术对我的 React 组件进行单元测试。我可以在React Native 中做类似的事情吗?

我已按照说明设置 Jest,但找不到任何有关测试我的组件的文档。我想以与 React 相同的方式使用 React Native 进行完整的 TDD。

2个回答

我认为就是你要找的。

它为您提供了一个shallow功能,允许您进行浅比较(根据需要)。

Enzyme 可以与所有流行的测试运行器(如 Mocha、Jest、Karma 等)一起使用。完整列表可以在图书馆的 github 页面上找到

例子:

import {shallow} from 'enzyme';

describe('<MyComponent />', () => {
  it('should render three <Foo /> components', () => {
    const wrapper = shallow(<MyComponent />);
    expect(wrapper.find(Foo)).to.have.length(3);
  });
});

如需进一步阅读,您可以查看酶的浅层渲染 API一般文档

为此,您可以不使用enzyme,只使用浅渲染react-test-renderer

import ShallowRenderer from 'react-test-renderer/shallow';

it('renders', () => {
  const renderer = new ShallowRenderer();
  const wrapper = renderer.render(<MyComponent />);

  expect(wrapper).toMatchSnapshot();
});