RSpec中出现意外的nil变量

Eri*_*ang 2 rspec ruby-on-rails capybara

我有一个非常基本的RSpec示例不起作用.这是代码:

require 'spec_helper'

describe "Referral-type functionality" do
  describe "Affiliate system" do
    before { @affiliate = Affiliate.create(account_id: 1) }
    subject { @affiliate }

    describe "URL should work" do
      visit @affiliate.aff_url
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,rspec会给出NoMethodError,因为@affiliate是nil.我错过了什么?

Mor*_*ori 6

before块中定义的实例变量在示例块(it,specify)中可见,但在describe块中不可见.例如:

specify 'URL should work' do
  visit @affiliate.aff_url
end
Run Code Online (Sandbox Code Playgroud)