首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在React-testing library中使用` `getByTestId()`的替代方法

在React-testing library中使用` `getByTestId()`的替代方法
EN

Stack Overflow用户
提问于 2021-01-04 21:59:53
回答 1查看 475关注 0票数 0

我目前正在使用getByTestId()在我的React应用程序中进行测试。测试看起来像这样:

代码语言:javascript
复制
it('should be truthy when clicking to play or pause if "hasVideo" is true', () => {
  const newProps = {
    hasVideo: true
  }
  render(<VideoCardForm {...newProps} />);
  const videoEl = screen.getByTestId('video-play-pause');
  const result = fireEvent.click(videoEl);
  expect(result).toBeTruthy(); 
}); 

相关的DOM部分如下所示:

代码语言:javascript
复制
<video
  data-testid="video-play-pause"
  className={this.state.isPlaying ? classes.VideoOnPlay : classes.VideoPrep }
  onClick={(event) => {
    this.onVideoClick(this.props.url, event);
  }}
  src={`${this.props.url}`}
>
</video>

这是可行的。但是在我看来,像这样向DOM添加一些东西:data-testid,仅仅是为了运行一个测试,对我来说有点老生常谈。有没有一种替代方案可以添加到DOM中,它实际上服务于语义目的,而不仅仅是允许运行测试?

EN

回答 1

Stack Overflow用户

发布于 2021-01-04 22:10:16

您可以通过在容器属性中呈现本身来获取DOM。

const { container } = render(...)

如果视频是嵌套的DOM,则可以始终使用container.querySelector('video')来获取视频DOM。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65563923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档