假设您正在使用ActiveSupport::TestCase和FactoryGirl构建模型对象,您可以将其添加到您的test/test_helper.rb文件中:
# Generate model with id - useful for assert_select with dom_id
def model(name, options = {})
@next_id = {} if @next_id.nil?
@next_id[name] = 1 unless @next_id.has_key(name)
m = build(name, options)
m.id = @next_id[name]
@next_id[name] += 1
m
end
然后,假设您将RR其用作模拟库,您可以执行以下操作:
test 'something' do
posts = [model(:post), model(:post)]
mock(Post).all { posts }
get :index
assert_select "##{dom_id(posts.first)}", posts.first.title
end