我的RSpec文件中有这样的东西(它对我来说很好):
before do
@attr = attributes_for(:album)
post :create, album: @attr
end
it { expect(Album.exists?(@attr)).to be_true }
it { expect(response).to redirect_to(assigns[:album]) }
是否可以在单独的行和attributes_for(:album)
变量中不使用@attr
?或者甚至是其他更好的方式..
答案 0 :(得分:4)
不需要before block
或@attr
变量,您可以将示例更改为以下内容:
it "creates a album in the database" do
expect { post :create, album: attributes_for(:album) }.to change(Album, :count).by(1)
end