FactoryGirl错误“define_method”:尝试创建没有块的Proc对象(ArgumentError)“

时间:2013-03-20 11:25:49

标签: ruby-on-rails factory-bot

这是我的课程工厂i-e lesson.rb

FactoryGirl.define do
  factory :lesson do |lesson|
   lesson.sequence(:title) { |n| "title#{n}" }
   lesson.sequence(:description) { |n| "description#{n}" }
   lesson.sequence(:transcript) { |n| "transcript#{n}" }
   association :course, strategy: :build
  end
end

这是我的lesson_spec.rb文件

require 'spec_helper'

describe Lesson do
  before { let(:lesson) { FactoryGirl.create(:lesson) } }
  subject (:lesson)
  it { should validate_presence_of :title    }
end

任何帮助?在此先感谢!!!

3 个答案:

答案 0 :(得分:0)

你不需要在前一个块中的before语句。

before { let(:lesson) { FactoryGirl.create(:lesson) } }

更改为

let(:lesson) { FactoryGirl.create(:lesson)

答案 1 :(得分:0)

简单的你以前不需要让它,你要么使用beforelet我更愿意使用let,看看this answerexplainin何时使用let和何时使用之前。

require 'spec_helper'

describe Lesson do
  let(:lesson) { FactoryGirl.create(:lesson) }
  subject (lesson)
  it { should validate_presence_of :title    }
end

答案 2 :(得分:0)

我是这样做的,它有效

require 'spec_helper'

describe Lesson do
  subject { FactoryGirl.create(:lesson) }
  it { should validate_presence_of :title    }