我很确定我可以使这个测试更干净,一直在搜索但无法破解它。测试通过,但我想重构。
describe "as an authenticated user that made the offer" do
before { log_in offering_user; }
specify { expect { delete :destroy, id: offer.id }.to change(Offer, :count).by(-1) }
describe "redirect and flash" do
before { delete :destroy, id: offer.id }
specify { response.should redirect_to item_path(offer.receiving_item) }
specify { flash[:success].should_not be_nil }
end
end
看看我是如何不得不在规范中提出两次请求的?这也迫使我使用另一个描述块。理想情况下,我可以在第一个before
块中提出请求,并有一些类似的东西
it { should change(Offer, :count).by(-1) }
谁能指出我正确的方向?谢谢。