gpt4 book ai didi

arrays - 为 RSpec 数组匹配器启用差异化

转载 作者:太空宇宙 更新时间:2023-11-03 18:05:40 24 4
gpt4 key购买 nike

RSpec 在比较多行字符串时提供了“diff”风格的输出。有没有办法在比较数组时做类似的事情(除了将数组转换为多行字符串)?

最佳答案

我可能错了,但我不认为这个特性是 RSpec 内置的。

但是,您可以 implement a custom matcher with a custom error message :

RSpec::Matchers.define(:eq_array) do |expected|
match { |actual| expected == actual }

failure_message do |actual|
<<~MESSAGE
expected: #{expected}
got: #{actual}

diff: #{Diffy::Diff.new(expected.to_s, actual.to_s).to_s(:color)}
MESSAGE
end
end

# Usage:

expect([1, 2, 3]).to eq_array([1, 4, 3])

此演示使用 diffy图书馆;您可以按照您认为合适的方式实现。

关于arrays - 为 RSpec 数组匹配器启用差异化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46566468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com