在调用方法时为多个变量赋值

时间:2014-03-31 19:37:38

标签: ruby-on-rails ruby rspec

我的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?或者甚至是其他更好的方式..

1 个答案:

答案 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