笑话:如何测试一个组件是不是具有某个 ref 属性?

Posted

技术标签:

【中文标题】笑话:如何测试一个组件是不是具有某个 ref 属性?【英文标题】:Jest: How to test that a component has a certain ref attribute?笑话:如何测试一个组件是否具有某个 ref 属性? 【发布时间】:2021-06-23 13:24:05 【问题描述】:

JSX

const MyComp = ( myDOMElRef ) => <div id="x" ref= myDOMElRef  />

测试

const mockedElRef = 'whatever';
// ... set up stuff
instance=shallow(<MyComp ref= mockedElRef  />
expect(instance).toHaveProp('ref', mockedElRef);

Ref 是一个特殊的道具,因此测试失败。 如何检查 id 为 x 的 div 是否已将 ref 传入 MyComp?

【问题讨论】:

【参考方案1】:

反应 16+

const domElement = instance.get(0);
expect(domElement.ref).toBe(mockedElRef);

注意:在 React 15 之前,可以在从 shallow() 返回的包装器上使用 instance() 而不是 get(0)

【讨论】:

以上是关于笑话:如何测试一个组件是不是具有某个 ref 属性?的主要内容,如果未能解决你的问题,请参考以下文章

无法读取未定义的属性“getters” - 带有笑话的 VueJS 单元测试

笑话:当同一个模块也有命名导出时,如何模拟默认导出组件?

如何检查模型是不是具有某个列/属性?

我有一个笑话我如何导入到多个测试文件

我如何测试某个表格视图单元格是不是具有某个图像?

vue.js 如何获取某个组件实例?