Rspec - 未定义方法'let'

Sal*_*ler 17 ruby rspec ruby-on-rails capybara

这是我的rspec文件:

require 'spec_helper'

describe "Birds" do
  before { visit birds_path }
  it "should have the right title" do
    expect(page).to have_content("Approved Birds")
  end
  it "should contain the bird's name, genus, species" do
    let(:bird) { FactoryGirl.create(:bird) }
    expect(page).to have_content("#{bird.name}")
    expect(page).to have_content("#{bird.genus}")
    expect(page).to have_content("#{bird.species}")
  end
end
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下错误:

Failure/Error: let(:bird) { FactoryGirl.create(:bird) }
 NoMethodError:
   undefined method `let' for #<RSpec::Core::ExampleGroup::Nested_1:0xad87f84>
Run Code Online (Sandbox Code Playgroud)

我的Gemfile有'rspec-rails'和'capybara'宝石.任何人都知道如何解决这个问题?谢谢

SSR*_*SSR 30

describe "Birds" do
  let(:bird) { FactoryGirl.create(:bird) }
Run Code Online (Sandbox Code Playgroud)

你永远不应该在一个let街区内有一个it街区.它应该从一个内部调用describe


Pet*_*vin 6

let只在其中定义describe.你已经在里面使用过了it