javascript - Jest 期望使用不包含特定字段的对象调用 mock

标签 javascript unit-testing jestjs

我想验证是否使用一个不包含特定字段的对象调用模拟 API。

expect(api.method).toBeCalledWith(expectedObject);

由于 api.method 调用的实际参数可以是 expectedObject 的子集,如果 actualObject 包含更多内容,则此测试也会通过字段(其中可能包含特定字段)。

如果 actualObject 不等于 expectedObject,我该如何重写测试,使测试失败?

最佳答案

你可以试试这样的东西

// get the first call to your method
const method = api.method.mock.calls[0]; 

//check if you have expectedObject as a subset of the arguments
expect(method[0]).toMatchObject(expectedObject); 

//key is the field that shouldn't be part of the arguments
expect(method[0].has(key)).toEqual(false); 

关于javascript - Jest 期望使用不包含特定字段的对象调用 mock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159916/

相关文章:

javascript - 有没有办法使用 Nodejs 从 Swagger 文件中检索所有参数(甚至嵌套或数组中的参数)?

javascript - 如何在EJS模板中执行JavaScript代码?

javascript - Jquery keydown 不起作用

unit-testing - 单元测试覆盖率未显示在 Sonarqube 上 - 通过 Jenkins Sonar 插件运行 - 测试成功显示正确

javascript - jest.spyOn 不适用于解构函数

unit-testing - 如何使用 Jest 和 enzyme 来监视 componentWillMount

javascript - Vuetify - 列的断点

perl - 如何使用 Test::MockObject 模拟 IO::Socket::INET

unit-testing - 如何对没有副作用的方法进行单元测试?

node.js - 由于拆卸不当导致 Jest 测试泄漏