我是测试和使用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
和其他挂钩一起测试简单的东西?
答案 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