rspec 为失败的 eq 禁用 diff

rspec disable diff for failed eq

有没有办法在失败的 eq 匹配器上禁用 diff 计算?

我的代码是这样的

object1 = MyCustomObject.new(param1)
object2 = MyCustomObject.new(param2)
expect(object1).to eq(object2)

如果发生错误并且这些对象不相等

object1 == object2 # false

rspec 试图计算差异,但我的对象非常复杂,这导致我的 PC 内存占用过多,Ubuntu 只是挂断。真的 - 我不需要这个差异,所以我只想禁用它们。 怎么做?

找到解决方法。 rspec 使用自定义对象的 inspect 方法来计算差异列表。 所以我在对象中创建 insepct 并输出不是所有由 ruby 自动生成的东西,但只有我在那个 diff 中真正需要的东西 - 它有效。