空数组的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