我发现测试来自数据库的记录是否正确排序非常冗长乏味。 我正在考虑使用数组“==”方法来比较两个搜索数组。数组的元素和顺序必须相同,所以看起来很合适。问题是如果元素缺失,即使它们严格正确排序,测试也会失败。
不知道有没有更好的方法...
最佳答案
rails 4
app/models/person.rb
default_scope { order(name: :asc) }
test/models/person.rb
test "people should be ordered by name" do
xavier = Person.create(name: 'xavier')
albert = Person.create(name: 'albert')
all = Person.all
assert_operator all.index(albert), :<, all.index(xavier)
end
rails 3
app/models/person.rb
default_scope order('name ASC')
test/unit/person_test.rb
test "people should be ordered by name" do
xavier = Person.create name: 'xavier'
albert = Person.create name: 'albert'
assert Person.all.index(albert) < Person.all.index(xavier)
end
关于ruby-on-rails - 如何测试 Rails 中的记录顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8090544/