在rspec视图中使用assign()



我正在尝试在这里给出的示例之后建模我的视图规范之一。

From my Gemfile: gem 'rspec-rails', '~> 3.0'

# /app/spec/views/teams/index.html.haml_spec.rb
RSpec.describe "teams/index", type: :view do
  before (:each) do
    assigns(:teams, [
      FactoryGirl.create(:team, name: "Team 1"),
      FactoryGirl.create(:team, name: "Team 2")
    ])
  end
  it "renders a list of teams" do
    render
    expect(rendered).to match /Team 1/
    expect(rendered).to match /Team 2/
  end
end

 1) teams/index renders a list of teams
     Failure/Error: assigns(:teams, [
     ArgumentError:
       wrong number of arguments (2 for 0..1)

我不明白失败…我只是在照医生说的做。我错过了什么?

你应该使用assign而不是assign:

before (:each) do
  assign(:teams, [
    FactoryGirl.create(:team, name: "Team 1"),
    FactoryGirl.create(:team, name: "Team 2")
  ])
end

最新更新