通常、コントローラーの仕様では、次のようにします。
describe MyController do
describe 'POST #create' do
let!(:my_model) { initialize_something_here }
before :each do
post :create, my_model: my_model
end
it 'should be successful' do
response.should be_successful
end
... more tests ...
end
end
私の質問は、expect
データベース内のアイテムの数が の後にインクリメントされていることを確認するなど、ブロックを使用するアサーションを行う場合、次のようにブロックから呼び出しcreate
を削除し、ステートメントごとに繰り返す必要があるということです。post
before :each
it
describe MyController do
describe 'POST #create' do
let!(:my_model) { initialize_something_here }
it 'should insert into database' do
expect { post :create, my_model: my_model }.to change(MyModel, :count).by(1)
end
it 'should be successful' do
post :create, my_model: my_model
response.should be_successful
end
... more tests ...
end
end
post
通話を行う DRY-er の方法はありますか?