Jasmine 在测试完成后引发错误时导致测试失败

Jasmine 在测试完成后引发错误时导致测试失败,jasmine,jestjs,Jasmine,Jestjs,我试图找到一种方法来确保我的jest测试没有从异步函数抛出错误 例如,此测试将成功,但在测试完成后将抛出错误: it ('should throw error', ()=> { setTimeout(()=> { throw 'this should fail tests!!' }, 100) expect(1).toEqual(1) }) 我想要一种方法,使抛出的错误导致整个测试套件失败,即使单个测试已经结束 我知道这个错误会出现在控制台中,但当您

我试图找到一种方法来确保我的jest测试没有从异步函数抛出错误

例如,此测试将成功,但在测试完成后将抛出错误:

it ('should throw error', ()=> {
   setTimeout(()=> {
      throw 'this should fail tests!!'
   }, 100)

   expect(1).toEqual(1)
})
我想要一种方法,使抛出的错误导致整个测试套件失败,即使单个测试已经结束


我知道这个错误会出现在控制台中,但当您运行数百个测试时,很容易忽略这个错误。有什么好办法吗?

样品太合成了。若函数并没有提供任何副作用,那个么只会抛出错误,或者若您预期的所有副作用都成功发生了,那个么若之后发生了错误抛出,那个么知识就并没有价值了。从另一方面来说,知道副作用应该是什么——你可以针对它们进行验证。如果它们没有到达,不管是否抛出错误。@skyboyer我的示例非常简单,可以让人理解我的观点,但在更复杂的情况下,异步调用中可能存在问题(类型错误、引用错误等),并且可能没有为该调用编写测试。在不强制覆盖的项目中,这很容易发生。另外,我个人喜欢干净的测试控制台输出,如果可能的话,我也希望强制执行:)我明白你的意思。也许,我不够具体。真正的异步代码有副作用。您可以而且应该针对它进行验证。在其他代码预期运行时错误之前,验证运行时错误本身没有任何价值。但在这种情况下,将返回带有拒绝的
Promise
,而不仅仅是控制台中的错误消息。