node.js - 如何使用 Jest 断言数据类型

标签 node.js jestjs

我正在使用 Jest 来测试我的 Node 应用程序。
我是否可以期望/断言一个值是日期对象?expect(typeof result).toEqual(typeof Date())是我的尝试,但自然返回[Object]。所以这也会通过 {}。
谢谢!

最佳答案

用于更新版本的 Jest > 16.0.0 :
有一个名为 toBeInstanceOf 的新匹配器.您可以使用匹配器来比较值的实例。
示例:

expect(result).toBeInstanceOf(Date)

用于 Jest 版本 < 16.0.0 :
使用 instanceof证明是否result变量是 Date对象与否。
示例:
expect(result instanceof Date).toBe(true)

匹配原始类型的另一个示例:
boolean , number , string & function :
expect(typeof target).toBe("boolean")
expect(typeof target).toBe("number")
expect(typeof target).toBe("string")
expect(typeof target).toBe('function')
array & object :
expect(Array.isArray(target)).toBe(true)
expect(target && typeof target === 'object').toBe(true)
null & undefined :
expect(target === null).toBe('null')
expect(target === undefined).toBe('undefined')
Promiseasync function :
expect(!!target && typeof target.then === 'function').toBe(true)

引用:
  • https://jestjs.io/docs/expect#tobeinstanceofclass
  • https://github.com/facebook/jest/issues/3457
  • https://futurestud.io/tutorials/detect-if-value-is-a-promise-in-node-js-and-javascript
  • 关于node.js - 如何使用 Jest 断言数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62564800/

    相关文章:

    javascript - 如何在 Jest 中获取 anchor 标记的文本

    node.js - 如何在mac os上安装node7?

    node.js - NPM 无法安装任何范围内的包

    javascript - 未调用 enzyme 异步等待模拟函数

    javascript - Jest onSpy - 预期模拟函数已被调用

    javascript - 调度程序未在 Jest 单元测试中注册回调

    react-native - React Native 测试失败,缺少 babel 转换

    node.js - 使用 sequelize 和环境变量连接数据库的 Node 配置文件设置

    windows - 我如何在 winXP 上设置 socket.io?

    javascript - Hapi/Joi 验证 - 不同的 Joi.regex 取决于另一个键值