【问题标题】:How can I print a pretty object diff in a Jest custom matcher?如何在 Jest 自定义匹配器中打印漂亮的对象差异?
【发布时间】:2022-10-20 16:17:44
【问题描述】:

我正在编写一个自定义的 Jest 匹配器来以某种任意方式比较对象:

expect.extend({
  toTorgle(received, expected) {
    ...
    return {
      pass: false,
      message: () => "expect(received).toTorgle(expected):" + ???
    }
  }
})

如何在两个对象之间打印一个很好的对象差异,比如我使用(内置匹配器)expect(received).toEqual(expected) 得到的那个?

【问题讨论】:

    标签: javascript jestjs


    【解决方案1】:

    根据Jest-Platform document,您可以使用jest-diff 获得一个“漂亮打印”的字符串,说明两个参数之间的区别。

    您的 message 函数将变为:

    const { diff } = require('jest-diff'); // already available if Jest is installed
    
    // ...
    
    message: () => "expect(received).toTorgle(expected):" + diff(expected, received),
    

    默认情况下,diff() 的第一个参数标记为Expected,第二个参数标记为Received。这可以通过提供 Options 作为第三个参数来改变。见the Options documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2016-04-26
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 2013-08-08
      相关资源
      最近更新 更多