断言 "expect" 开玩笑地调用了 X 次

Assert That "expect" Called X Times in Jest

如果 expect 根本没有被调用,我怎么会失败?或者甚至更好,当它没有被调用 X 次时?

例如:

it('should fail', () => {
    if (1 === 2) {
        expect(1).toEqual(1)
    }
}

换句话说,Jest中的ava-t.plan是什么?

您可以使用 expect.hasAssertions() 来确保做出断言:

it('made an assertion', () => {
    expect.hasAssertions();
    if (1 === 2) {
        expect(1).toEqual(1)
    }
}

在这种情况下,测试将失败,因为从未调用 expect

您还可以使用 expect.assertions(...) 来确保在您的测试中进行了特定数量的断言。此测试将通过:

it('made 2 assertions', () => {
    expect.assertions(2);
    expect(1).toEqual(1);
    expect(2).toEqual(2);
}

有关详细信息,请参阅 expect 上的 Jest 文档。