gpt4 book ai didi

javascript - 在 Jest 中使用 `expect.any(Object)` 或 `expect.anything()` 无法匹配 `undefined`

转载 作者:行者123 更新时间:2023-12-04 02:27:59 26 4
gpt4 key购买 nike

我有以下要测试的模块。

import * as apiUtils from './apiUtils';

export function awardPoints(pointsAwarding) {
return apiUtils.callApiService("POST", "points", pointsAwarding);
}

这是我的测试。
it("should call apiUtils with correct path", () => {
//given
jest.spyOn(apiUtils, 'callApiService');

//when
pointsAwardingApi.awardPoints();

//then
expect(apiUtils.callApiService).toBeCalledWith(expect.any(String), 'points', expect.any(Object));
});

当我尝试运行此测试时,出现以下错误。
Any<Object> as argument 3, but it was called with undefined.
我期待 expect.any(Object)也会匹配 undefined但似乎并非如此。

我也试过 expect.anything()但我得到一个类似的错误。

我可以简单地指定 undefined作为第三个参数,但我的测试只是为了验证第二个参数。

有没有办法可以使用匹配任何对象的匹配器,包括 undefined ?

最佳答案

看起来像 expect.anything与设计上未设置的值不匹配。如果你需要一个“真正的任何东西”匹配器,这里有一个:

export const expectAnythingOrNothing = expect.toBeOneOf([expect.anything(), undefined, null]);
您需要 jest-extended对于 toBeOneOf matcher - 但无论如何它是一个有用的包:)

关于javascript - 在 Jest 中使用 `expect.any(Object)` 或 `expect.anything()` 无法匹配 `undefined`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47027011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com