Rspec 缺少必需的密钥失败:[:id]

Rspec fail missing required keys: [:id]

当我 运行 我的规范时,我得到以下信息。

为什么会这样?我只是想确保我正在执行 ProjectsController 中的显示操作。

规格

require 'spec_helper'

describe "Creating projects" do
  it "can create a project" do
    visit '/'

    click_link 'New Project'
    fill_in 'Name', with: 'TextMate2'
    fill_in 'Description', with: 'A text-editor for OS X'

    click_button 'Create Project'
    expect(page).to have_content('Project has been created.')

    project = Project.where(name: "TextMate 2").first
    expect(page.current_url).to eql(project_url(project))

    title = "TextMate 2 - Projects - Ticketee"
    expect(page).to have_title(title)
  end

控制器

  def show
    @project = Project.find(params[:id])
  end

查看

<h2><%= @project.name %></h2>

更改此行

project = Project.where(name: "TextMate 2").first

project = Project.where(name: "TextMate2").first

您创建了 project name TextMate2 而不是 TextMate 2,所以project = Project.where(name: "TextMate 2").firstreturnsnil