Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby – 是否存在匹配哈希的RSpec2匹配器?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
注意未来的读者:认为RSpec不认为你的哈希是相等的?一个可能是一个orderedHash,但是从常规的RSpec输出你不能告诉.这是提示这个帖子的问题.

原来的问题:

假设我有一个规范,我想测试一个方法生成适当的哈希.

it 'should generate the Hash correctly' do
  expected = {:foo => 1,'baz' => 2}
  subject.some_method_that_should_generate_the_hash.should == expected
end

这通常会失败,因为具有相同键值对的不同哈希可能会以不同的顺序返回它们的对.结果如下:

Failure/Error: subject.some_method_that_should_generate_the_hash.should == expected
expected: {:foo => 1,'baz' => 2},got: {'baz' => 2,:foo => 1}

对于数组,这是使用=〜运算符来解决的.但是,这不适用于哈希.现在,我已经诉诸了

it 'should generate the Hash correctly' do
  expected = {:foo => 1,'baz' => 2}
  subject.some_method_that_should_generate_the_hash.each {|k,v|
    v.should == expected[k]
  }
end

但这似乎是不必要的冗长.我期望有一个明显的解决方案.我是在文档中忽略某些东西,还是RSpec没有适当的匹配器来实现无秩序哈希平等?

解决方法

describe 'Hash' do
  let(:X) { { :a => 1,:b => 2 } }
  let(:y) { { :b => 2,:a => 1 } }

  it "should be equal with ==" do
    x.should == y
  end
end

通行证.我不知道你的具体情况发生了什么.你有一些失败的例子,你可以分享?

Ruby编程有这样的说法:

大佬总结

以上是大佬教程为你收集整理的ruby – 是否存在匹配哈希的RSpec2匹配器?全部内容,希望文章能够帮你解决ruby – 是否存在匹配哈希的RSpec2匹配器?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。