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