我有一个User
类has_many
Job
s。我使用以下代码映射作业:
def ranges
user.jobs.map { |u| [u.start_at, u.end_at] }
end
我有一个比较两个数组的规范:
my_array = [[start1, end1], [start2, end2]]
expect(ranges).to eq my_array
它传递本地,但不传递 Bamboo 构建。我必须更改它才能通过构建。我仍然不明白为什么它会这样。即使地图不保留顺序,我也期望一些随机模式。
为什么这在我的本地上可以通过,但在 Bamboo 构建中却失败了?
根本问题不是因为map
,这应该保留顺序。相当,user.jobs
本身可能有不同的顺序(在每个测试中),因为没有任何明确的order by
使用的子句。没有明确的order by
,即使您按照特定顺序创建作业,也无法保证作业的顺序。
你应该使用http://www.rubydoc.info/github/rspec/rspec-expectations/RSpec/Matchers:match_array http://www.rubydoc.info/github/rspec/rspec-expectations/RSpec/Matchers:match_array代替eq
进行比较以避免此类问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)