当前位置: 首页 > 知识库问答 >
问题:

你能写出期望抛出的异步测试吗?

闽朝
2023-03-14

我正在编写一个异步测试,它期望异步函数抛出如下所示:

it("expects to have failed", async () => {
  let getBadResults = async () => {
    await failingAsyncTest()
  }
  expect(await getBadResults()).toThrow()
})

但jest只是不及格而不是通过测试:

 FAIL  src/failing-test.spec.js
  ● expects to have failed

    Failed: I should fail!

null

expect(async () => {
  await failingAsyncTest()
}).toThrow()

null

expect(function).toThrow(undefined)

Expected the function to throw an error.
But it didn't throw anything.

共有2个答案

乐正浩博
2023-03-14

我想补充一下,您正在测试的函数必须抛出一个实际的错误对象 。如果您只是抛出一个类似 的表达式,Jest似乎无法识别。

施权
2023-03-14

您可以这样测试您的异步函数:

it('should test async errors', async () =>  {        
    await expect(failingAsyncTest())
    .rejects
    .toThrow('I should fail');
});

null

 类似资料:
  • 问题内容: 嗨,有一个针对车辆构造函数的测试。该测试会在没有驾驶执照的情况下使用驾驶员对车辆进行初始化,并且应该抛出异常。代码构造函数: 代码测试: 当我运行此重点测试方法时,这就是结果。 -------------标准输出--------------- 吉恩正确的rijbewijs 因此,根据输出,捕获并显示了异常,但测试失败。有人知道为什么吗?提前致谢。 编辑:我通过不包括try-catch块

  • 我用Spock测试Java代码。我测试这段代码: 我写了一个测试: 它失败是因为抛出了另一个CustomException。但是在块中,我捕获这个异常并抛出一个,因此我希望我的方法将抛出,而不是。如何测试它?

  • 我有一个异步函数,我想同时测试成功和失败。函数成功时返回一个字符串,失败时抛出。我在测试失败上失败得很惨。下面是我的代码: 我通过注释失败的代码并在注释中添加结果来禁用 正如你所看到的,什么都不起作用。我相信我的测试几乎是第一个失败测试的Promises示例和最后一个失败测试的Async/Await示例的完全副本,但是没有一个可以工作。 我相信与Jest文档中的示例的不同之处在于,它们展示了如何测

  • 我应该实现一个原始的多线程服务器,为每个连接启动一个新线程。 其中一个线程可能会收到关闭服务器的消息。 是否可以从其中一个子线程通知父线程停止接受新连接并关闭服务器?

  • 由于一个我不知道的事件,调用在我的Ubuntu18.04中不再起作用。(自4月开始运行)。或I阶段尝试的任何其他生命周期都运行良好。 例如,如果我在克隆到中的Apache Commons IO的最新版本中运行,If显示 target/surefire-reports包含以下内容的许多重复 我尝试的任何其他项目都表现出类似的行为。 我尝试下载maven 3.5.4,解压缩它,通过将它添加到路径中,并

  • 我用Robolectric测试写了一个简单的hello-world。 我已经向build.gradle添加了正确的依赖项: 下面是我要测试的简单: 我运行的是Android Studio2.0预览版3B。 问题是:如何避免失败?