首页 > 解决方案 > 酶单元测试组件

问题描述

我似乎无法获得一个基本的单元测试来运行酶。

describe('<Fixture />', () => {
    it("should the test",() => {
      const wrapper = mount(<Fixture />);
      expect(wrapper.find('#checked')).toBeChecked();
      expect(wrapper.find('#not')).not.toBeChecked();
    })
  });


function Fixture() {
    return (
      <div>
        <input id="checked" defaultChecked />
        <input id="not" defaultChecked={false} />
        <input id="tertiary" defaultChecked checked={false} />
      </div>
    );
  }

我不断收到以下错误

TypeError: Cannot read property 'child' of undefined

标签: arraysreactjsunit-testingjestjsenzyme

解决方案


我猜你react至少使用的是最新的,v17但仍在使用v16适配器enzyme-adapter-react-16,因为它enzyme-adapter-react-16react v17.

但是我们有一个解决方法,方法是使用这个包@wojtekmaj/enzyme-adapter-react-17,如下所示:

// Keep in mind install before using
// npm i -D @wojtekmaj/enzyme-adapter-react-17

// Simple set it up globally
const Adapter = require('@wojtekmaj/enzyme-adapter-react-17');

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


推荐阅读