【发布时间】:2018-12-01 07:11:21
【问题描述】:
在我的单元测试中,我想测试父组件是否成功渲染了它的子组件。代码如下:
describe('Parent Component', () => {
it('renders Child component', () => {
const wrapper = shallow(<Parent store={store} />);
expect(wrapper.find(Child).length).toEqual(1);
});
});
家长:
const Parent = observer(({ store }) => {
const bookList = toJS(store.planets);
return (
<div>
<div className={style.planet_container}>
{bookList.map(book => {
return <Child key={book.name} name={book.name} />;
})}
</div>
</div>
);
});
以上代码取自here,但它不起作用。我收到以下错误:
预期 1,收到 0'
我哪里出错了?我正在使用 Enzyme 3.3 和 Jest 23.1.0。
【问题讨论】:
-
您试图在子组件中查找子组件。我认为应该是这样的:
const wrapper = shallow(<Parent store={store} />); -
这里复制代码时打错了。上面固定。
-
您是否在测试中导入该子组件?如果没有,试试这个:
expect(wrapper.find('Child').length).toEqual(1);或尝试导入子组件。 -
是的,我正在导入它,但仍然无法正常工作
-
尝试使用
mount创建您的包装器,因为shallow不会渲染子级。看看这个:github.com/airbnb/enzyme/issues/465#issuecomment-227697726
标签: javascript reactjs unit-testing jestjs enzyme