在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
是一种好习惯吗?因为只是构建它会引发错误(因为工厂的必需字段不会被构建设置)。