【问题标题】:Factory girl seed data工厂女孩种子数据
【发布时间】:2012-12-30 22:59:05
【问题描述】:

我有一个角色模型,在运行任何测试之前需要“学生”、“讲师”、“管理员”行。我可以为具有关联学生角色的用户创建(并通过测试),但这只会创建一个角色。但是,我的应用程序中的方法和范围失败了,因为他们可能希望找到一个“管理员”角色......但不存在。

如何在运行测试之前在 FactoryGirl 中创建多个角色?

我试过了……

在 minitest_helper.rb 中

 class MiniTest::Spec  
   include FactoryGirl::Syntax::Methods
   before :each do
     DatabaseCleaner.clean
     Capybara.reset_sessions!
     Capybara.use_default_driver

     FactoryGirl.create(:role, name: "student")
     FactoryGirl.create(:role, name: "admin")
     FactoryGirl.create(:role, name: "instructor")
   end
  end

角色按预期创建...

在 factory.rb 中

    factory :account do
      user # associated user factory

      trait :student do
       role_id { Role.find_by_name("student") }
      end
    end

我希望这会在测试中调用以下命令时将正确的学生角色 ID 分配给帐户 role_id 字段...

在 user_test.rb 中

   it "says Welcome Back" do
     a = FactoryGirl.create :account, :student
     assert page.has_content?('Welcome Back'), "does not contain Welcome Back" 
   end

我得到的错误是:

  undefined method `to_i' for #<Role:0x007fd5563cbdc8>

【问题讨论】:

    标签: ruby-on-rails-3 factory-bot


    【解决方案1】:

    变了

     role_id { Role.find_by_name("student") } 
    

    role_id { Role.find_by_name("student").id }
    

    这就是全部...

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多