在玩笑测试中使用 expect.assertions(x) 与使用 fail()

Fle*_*eMo 3 javascript node.js typescript jestjs

我正在设置一些异步junit打字稿测试,但似乎我没有正确理解文档。

我编写了一个测试,通过发送图像的 ID 向 Web API 询问特定的 svg 图像。

测试不发送 ID,因此 Web API 应返回 http 代码 404。这是测试,它运行良好:

test("getSvgByImageId unknown", () => {
    expect.assertions(1);

    return client.getSvgImageById("")
    .then(svg => {
        fail("API should return error")
    })
    .catch(error => {
        expect(error.status).toBe(404);
    })
});
Run Code Online (Sandbox Code Playgroud)

但是当我使用 fail() 方法时为什么要使用 expect.assertions(x) 呢?该测试也可以在没有 expect.assertions(x) 行的情况下工作。

Bri*_*ams 5

这个职位Jest在参考全球合作者fail()功能:

这将在某些时候停止工作 - 它不是 Jest 文档化 API 的一部分。

Jest基于Jasmine并且fail()是从 的结转Jasmine

它不是Jest文档的正式组成部分,因此不应使用它,因为它可能会从未来的Jest版本中删除。