在RSpec中测试rails计数器缓存有没有比这更好/更简单的方法:
let(:question) { create(:question) }
it "has a counter cache" do
expect {
create(:answer, question_id: question.id, user_id: question.user.id)
}.to change {
question.reload.answers_count
}.by(1)
end
另外,在这里的工厂中使用#create
而不是#build
是不是一个好的做法?因为仅仅构建它会抛出错误(因为工厂的必需字段不会在构建时设置)。
1条答案
按热度按时间hzbexzde1#
Rails已经测试了递增计数器。我们应该做的是在启用
counter_cache
的情况下测试Answer的belongs_to :question
关联。