unit-testing - toBeInTheDocument() 和 toBeVisible() 有什么区别?
问题描述
在反应测试库中,我们有两个函数叫做toBeInTheDocument()
和toBeVisible()
。
1 expect(screen.getByText('hello')).toBeInTheDocument();
2 expect(screen.getByText('hello')).toBeVisible();
看来,上述两个断言的行为方式相同。这两个功能有什么不同,它们的用例是什么?
解决方案
toBeInTheDocument只是发现元素在 DOM 树中,而不管可见性如何
toBeVisible检查多个属性以查看它是否可见,例如
display
不等于none
opacity
比...更棒0
hidden
属性不存在visibility
不等于hidden
或collapse
- 检查元素,如果它的文档和父元素可见
推荐阅读
- vba - 需要 vba 宏来删除每列中除第一行和最后一行之外的单元格
- internet-explorer - 无法使用 selenium webdriver 在 IE 中编辑剑道网格表中的任何单元格
- sql - 如何仅在一个事务中计算 Jooq / SQL 中一列的百分比?
- r - 在 R 中保存多面板图
- python - 使用带有阵列平面 (POA) 的 ModelChain 作为天气输入
- windows - 将大量文件从 MAC 复制到 Windows 服务器并保留修改和创建日期
- jquery - YouTube iframe 播放器的自动播放不适用于 chrome 和 firefox
- java - 为什么使用工厂方法模式而不是简单工厂
- vba - 循环不起作用 - Excel VBA
- java - 带有堆栈跟踪“无 bean 工厂”的警告