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

In React Native how can I test my components with Shallow Rendering?

React, I use Shallow Rendering techniques for unit testing my React components. Can I do something similar in React Native

followed the instructions to set up Jest,但找不到任何关于测试我的组件的文档。我想像使用 React 一样使用 React Native 进行完整的 TDD。

我想 enzyme 就是您要找的。

它为您提供了一个 shallow 功能,可以让您进行浅层比较(如您所愿)。

Enzyme 可以与所有流行的测试运行程序(如 Mocha、Jest、Karma 等)一起使用。可以找到完整列表 on the library's github page.

示例:

import {shallow} from 'enzyme';

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

如需进一步阅读,您可以大致了解酶的 Shallow Rendering API or docs

您可以在不使用 enzyme 的情况下执行此操作,只需使用 react-test-renderer 中的 Shallow Renderer

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

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

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