0
通常在我的控制器的規格,我會做這樣的事情:DRY rspec的語法控制器規格
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
後遞增,我必須從before :each
塊取出post
呼叫,像這樣重複它爲每個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
是否有DRY-ER方式打電話給post
?
我想可以工作......我希望有一個更簡潔的或內置的方式做這樣的事情。 –
好的提示!雖然可能是期望應該是這樣的:'expect(post_create_model).to改變...'(注意括號)? – Philipp