【问题标题】:FactoryGirl RSpec No method error when creating factory object where factory sets a property of that objectFactoryGirl RSpec 创建工厂对象时没有方法错误,其中工厂设置了该对象的属性
【发布时间】:2011-11-29 19:35:30
【问题描述】:

每当我创建一个工厂对象时,我都会收到这个错误,工厂在该对象上设置了一个属性——在本例中为“名称”。为什么???

businesses.rb

FactoryGirl.define do
  factory :business do

    factory :business_main do
      name "Dave's Toys"
    end
  end
end

企业表

        Column        |            Type             |                        Modifiers                        
----------------------+-----------------------------+---------------------------------------------------------
 id                   | integer                     | not null default nextval('businesses_id_seq'::regclass)
 name                 | character varying(255)      | 
 address_line1        | character varying(255)      | 
 address_line2        | character varying(255)      | 
 city                 | character varying(255)      | 
 state                | character varying(255)      | 
 zip                  | character varying(255)      | 

business_spec.rb

...
business  = Factory(:business_main)
...

 # Failure/Error: business  = Factory(:business_main)
 # NoMethodError:       undefined method `name=' for #<Business:0x007fc991684590>

-

Using rails (3.1.3) 
Using factory_girl (2.3.2) 
Using factory_girl_rails (1.4.0)
Using rspec-core (2.7.1) 
Using rspec-expectations (2.7.0) 
Using rspec-mocks (2.7.0) 
Using rspec (2.7.0) 
Using rspec-rails (2.7.0) 

【问题讨论】:

  • 这很奇怪。你如何运行你的规范?
  • 你想通过嵌套 businessbusiness_main 这样的工厂来完成什么?
  • Ack,我没有在测试数据库中运行我的迁移!
  • @99miles,是的,这是我的第一个猜测

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


【解决方案1】:

运行rake db:test:clone,然后所有测试数据库列将正确映射到 Active Record 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 2017-08-12
    • 2012-02-05
    相关资源
    最近更新 更多