FactoryGirl首先创建了对象,即使在指定第二个对象时也是如此

时间:2014-05-26 12:52:34

标签: ruby-on-rails-4 rspec factory-bot

我无法理解这一点。我有一个课程工厂,我用它来创建两个对象。当我访问会计课程的页面时(如下所示),它会显示营销课程页面。但是,如果我首先使用工厂女孩来创建会计课程,那么它会访问正确的页面并且测试通过。

describe "Course pages" do

  subject { page }

  let!(:published_course) { FactoryGirl.create(:course, title: 'Marketing') }
  let!(:unpublished_course) { FactoryGirl.create(:course, title: 'Accounting') }

  describe "displaying the right page" do
    it "should display the accounting course page" do
      visit course_path(unpublished_course)
      expect(page).to have_content('Accounting')
    end
  end
end

它显然会访问首先创建的对象的页面,但我不知道为什么或如何解决此问题。

谢谢,

马特

1 个答案:

答案 0 :(得分:0)

course_path将生成正确的网址(即包含正确的id参数),但由您的控制器查找该ID的课程并将其传递给您的视图。相反,您的控制器/视图必须密谋显示创建的第一个课程。