【问题标题】:React testing library - await findBy* vs promise.thenReact 测试库 - await findBy* vs promise.then
【发布时间】:2021-08-30 07:43:04
【问题描述】:

我有一个测试,我等待显示一些文本: const allTodosPromise = findByText('All Todos')

我的测试实际上是检查返回的 HTMLElement 是否具有某种样式(查看它是否处于活动状态):

expect(await allTodosPromise).toHaveStyle(activeItemStyle); 失败并显示消息“无法找到带有文本'All Todos'...的元素”。

但是,如果我用 then 解决我的承诺,则测试通过,例如:

   allTodosPromise.then(htmlElement => 
       expect(htmlElement).toHaveStyle(activeItemStyle)
   );

为什么?是的,我确实说过我的测试函数是async

同样尝试在第一个引用中等待失败: const allTodosElement = await findByText('All Todos');

【问题讨论】:

  • 我猜第二个版本的测试通过了,因为在测试结束之前实际上没有达到预期,而不是因为它已经达到并且没有失败。请参阅jestjs.io/docs/asynchronous - 您可以通过断言达到的期望数量来检查。
  • 能否提供被测代码?

标签: javascript reactjs jestjs react-testing-library


【解决方案1】:

【讨论】:

  • findBy 只是 waitFor + getBy 的封装。已经试过了,还是不行
猜你喜欢
  • 2020-11-13
  • 2021-04-08
  • 2022-11-30
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
  • 2021-11-09
  • 2019-04-18
  • 2021-05-27
相关资源
最近更新 更多