useContext值在测试中返回未定义

时间:2019-12-14 02:40:41

标签: reactjs jestjs enzyme

我是测试和使用Enzyme和Jest编写非常简单的测试的新手。我只想检查组件是否渲染。但是,(我猜)因为我的组件使用了useContext钩子,所以对于所有来自Context的值,测试用例会自动返回undefined。

在组件中:

const { count, setCount } = useContext(Context);

测试用例:

it('should render', () => {
  const component = shallow(<MyComponent />);
  const wrapper = component.find('myClassName');
  expect(wrapper.length).toBe(1);
});

测试结果:无法读取未定义的属性“ count”。我不知道我在做什么错。有没有一种简单的方法可以始终与useContext和其他挂钩一起测试简单的东西?

1 个答案:

答案 0 :(得分:0)

我认为这里的问题是,当您浅浅渲染组件时,import React from 'react'; import './BusinessList.css'; import Business from '../Business/Business'; class BusinessList extends React.Component { render() { return ( <div className="BusinessList"> { this.props.businesses.map(business => { return <Business business={business} key={business.id} /> }) } </div> ); } } export default BusinessList; 将被忽略。因此,尝试安装您的组件,而不是像这样进行浅渲染:

Context