使用 enzyme 与 Tape 和 AVA

enzyme 与 TapeAVA 协作良好。只需安装并开始使用即可

npm i --save-dev enzyme enzyme-adapter-react-16

Tape

import test from 'tape';
import React from 'react';
import { shallow, mount, configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

import Foo from '../path/to/foo';

configure({ adapter: new Adapter() });

test('shallow', (t) => {
  const wrapper = shallow(<Foo />);
  t.equal(wrapper.contains(<span>Foo</span>), true);
});

test('mount', (t) => {
  const wrapper = mount(<Foo />);
  const fooInner = wrapper.find('.foo-inner');
  t.equal(fooInner.is('.foo-inner'), true);
});

AVA

import test from 'ava';
import React from 'react';
import { shallow, mount, configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';

import Foo from '../path/to/foo';

configure({ adapter: new Adapter() });

test('shallow', (t) => {
  const wrapper = shallow(<Foo />);
  t.is(wrapper.contains(<span>Foo</span>), true);
});

test('mount', (t) => {
  const wrapper = mount(<Foo />);
  const fooInner = wrapper.find('.foo-inner');
  t.is(fooInner.is('.foo-inner'), true);
});

示例项目