Faker gem的问题

Too*_*tje 4 rspec ruby-on-rails faker

我在我的Rails 4项目中安装了Fabrication和Faker

我创建了一个fabrarication对象:

Fabricator(:course) do
  title { Faker::Lorem.words(5) }
  description { Faker::Lorem.paragraph(2) } 
end
Run Code Online (Sandbox Code Playgroud)

我在我的courses_controller_spec.rb测试中调用了Faker对象:

require 'spec_helper'

describe CoursesController do
  describe "GET #show" do
    it "set @course" do
      course = Fabricate(:course)
      get :show, id: course.id
      expect(assigns(:course)).to eq(course)
    end
    it "renders the show template"
  end
end
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,测试在第6行失败:

course = Fabricate(:course)
Run Code Online (Sandbox Code Playgroud)

错误消息是:

Failure/Error: course = Fabricate(:course)
 TypeError:
   can't cast Array to string
Run Code Online (Sandbox Code Playgroud)

不知道为什么这会失败.有没有人遇到与Faker相同的错误消息?

dep*_*epa 8

返回来自words(5)数组,而不是字符串.你应该做这个:

title { Faker::Lorem.words(5).join(" ") }
Run Code Online (Sandbox Code Playgroud)