空数组的rspec匹配_数组失败?

空数组的rspec匹配_数组失败?,rspec,Rspec,在我的一个测试中,我无法使用match_数组再次匹配空数组。我有以下信息: Failure/Error: expect(subject.custom_text_locations).to be match_array([]) expected #<RSpec::Matchers::BuiltIn::MatchArray:105810100> => #<RSpec::Matchers::BuiltIn::MatchArray:0xc9d1168 @expected=

在我的一个测试中,我无法使用
match_数组
再次匹配空数组。我有以下信息:

Failure/Error: expect(subject.custom_text_locations).to be match_array([])

   expected #<RSpec::Matchers::BuiltIn::MatchArray:105810100> => #<RSpec::Matchers::BuiltIn::MatchArray:0xc9d1168 @expected=[]>
        got #<Array:105810180> => []
如果我通过
匹配数组([])
更改为空
,我的代码可以工作。此外,正如@PeterAlfvin所指出的,将主题的
自定义文本位置
初始化更改为
[]
似乎有效

这是我的方法:

def custom_text_locations
  self[:custom_text_locations] || []
end

问题:我的测试有什么问题?

您发布的代码不是生成您发布的错误的代码


您发布的错误包括不正确的
匹配数组([])
,这与您发布的代码中正确的
匹配数组([])
非常不同。

这很奇怪。如果将
主题.自定义文本位置
替换为
[]
是否通过?如果您打印
主题。自定义文本位置。在
expect
之前检查
,您会得到什么?另外,您使用的是什么版本的RSpec?@PeterAlfvin如果我用
[]
替换它,您会得到正确的结果。rspec版本
2.14.7
。我还添加了这个方法,因为它似乎与问题有关。你是预言家还是什么的我不接受你的回答,那么我可以让赏金猎人给你加分。几乎不是预言家,更像是盲人我一直盯着和错过这一差异的时间比我愿意承认的要长@福塔努斯:谢谢,太慷慨了。:-)
def custom_text_locations
  self[:custom_text_locations] || []
end