javascript - expect.toBeDefined() 不是 expect.toMatchObject() 的函数

标签 javascript unit-testing jestjs

我想用 jest 测试返回的对象是否符合我的预期。

我正在尝试这个:

const desiredResult = {
  host: '192.168.1.1',
  port: expect.any(Number),
  delta: expect.toBeDefined()
}
expect(result).toMatchObject(desiredResult)

jest 是说 .toBeDefined() 不是一个函数(但是 .any(Number) 没问题):

TypeError: expect.toBeDefined is not a function
  173 |       host: '192.168.1.1',
  174 |       port: expect.any(Number),
> 175 |       delta: expect.toBeDefined()
      |                     ^
  176 |     }
  177 |     expect(portCallback.mock.calls[0][0]).toMatchObject(desiredResult)

等(期望结果)

最佳答案

使用 expect.anything()而不是 expect.toBeDefined() .

就像expect.any() , 但不需要构造函数作为参数并且匹配除 null 之外的任何内容或 undefined .

请参阅https://facebook.github.io/jest/docs/en/expect.html#expectanything

关于javascript - expect.toBeDefined() 不是 expect.toMatchObject() 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50622264/

相关文章:

javascript - 如何垂直和水平居中滑动 slider ?

java - 模拟测试的正确方法

c# - VS 2017 中的创建单元测试在哪里?

c# - Assert.AreEquals 调用 object.Equals,无论 IEquatable 实现如何

javascript - Jest : Unit test toHaveBeenCalled() not working

reactjs - 使用多个调度(加载,错误和成功)测试 Action

javascript - React hooks 使用相同的原始值调用 setState 仍然会导致重新渲染

javascript - offsetWidth、scrollWidth、ClientWidth 属性不适用于 Html 元素

javascript - 如何使用 Webpack 在 JavaScript 中导入 Frontmatter 和 Markdown

javascript - aws-sdk-mock 模拟 s3.putBucketPolicy 不起作用