0

这是我的课程工厂,即 course.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

这是我的 course_spec.rb 文件

require 'spec_helper'

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

有什么帮助吗?提前致谢!!!

4

3 回答 3

0

您不需要 before 块中的 before 语句。

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

改成这个

let(:lesson) { FactoryGirl.create(:lesson)
于 2013-03-20T11:31:16.053 回答
0

很简单,您之前不需要 let in,无论您会使用before还是let我更喜欢使用 let,看看这个答案,解释何时使用 let 以及何时使用之前。

require 'spec_helper'

describe Lesson do
  let(:lesson) { FactoryGirl.create(:lesson) }
  subject (lesson)
  it { should validate_presence_of :title    }
end
于 2013-03-20T11:34:46.763 回答
0

我这样做了,它有效

require 'spec_helper'

describe Lesson do
  subject { FactoryGirl.create(:lesson) }
  it { should validate_presence_of :title    }
于 2013-03-20T12:42:30.560 回答