首页 > 解决方案 > 浅层测试功能作为子组件

问题描述

我添加了一个组件,它使用函数作为孩子。我对这个停止工作的组件进行了浅酶测试。

如何对使用函数的组件进行浅层测试?

零件

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

标签: reactjsjestjsenzyme

解决方案


孩子必须作为属性而不是直接调用孩子,并且 I18n 也必须是浅渲染的。

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

推荐阅读