浅测试功能作为子组件

时间:2018-09-17 17:57:44

标签: reactjs jestjs enzyme

我添加了一个使用function作为子元素的组件。我对该组件进行了浅酶测试,但该酶停止了工作。

如何对使用功能作为子级的组件进行浅层测试?

组件

return (
  <I18n>
    {({ i18n }) => (
      <div />
    )}
  </I18n>
)

我尝试过的测试

import { shallow } from 'enzyme';

wrapper = shallow(<Component />)
  .find('I18n')
  .children();
console.log(wrapper.debug()); //outputs: [function]


wrapper = shallow(<Component />)
  .find('I18n')
  .children()();
// TypeError: (0 , _enzyme.shallow)(...).find(...).children(...) is not a function

1 个答案:

答案 0 :(得分:1)

必须将子级作为属性获取,而不是直接调用子级,并且I18n也必须浅层渲染。

const outerWrapper = shallow(< Component />);
wrapper = shallow(outerWrapper.find('I18n').prop('children')());