讨论:是否可以测试库渲染的元素的innerHTML?

问题描述

我们有一个React,Material-UI项目,我们正在为此进行测试。

今天我们进行了讨论:我的一位同事编写了测试,以确保在某种情况下,材料UI中的<DoneIcon />会在容器内呈现。

他所做的是从浏览器的检查器中复制HTML,并断言所呈现的内容是否正是这一点。

代码看起来像这样:

const svgHTMLEnable =
  '<svg class="MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeSmall" focusable="false" viewBox="0 0 24 24" aria-hidden="true" title="Enable"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path></svg>';

test('something',() => {
  // Arrange
  const { getByTestId } = render(<MyComponent />);

  // Act
  // ...

  // Assert
  expect(getByTestId('container-ti')).toHaveHTML(svgHTMLEnable);
})

我说我不同意,我唯一能想到的就是如果我们更新 Material-UI 库,我们的测试将失败

他将代码辩护为我想测试此处呈现的内容,确切是Checkbox图标,什么也没有;如果 Material-UI 库更新,那么我们只需要触摸一个地方

好吧,我怀疑代码是否正确,这是一个很好的测试。你怎么看?您认为该测试会增加价值吗?做这样的事对吗?有什么方法可以满足该测试的需求吗?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...