Ruby on Rails 2.3.8:Factory_girl:全局变量在整个工厂构建中不保持价值?

时间:2011-06-20 14:24:58

标签: ruby-on-rails ruby unit-testing factory-bot

  setup do
     @user = Factory.build(:user)
  end

所以,在我的单元测试的顶部,我有上述。

在我的单元测试中,我做Factory.build(:object)

但在工厂本身,它是在说NoMethodError: undefined method my_attribute for nil:NilClass

我的工厂:

Factory.define :object |o| do
   o.my_attribute @user.my_attribute
end

但@user是nil = \

1 个答案:

答案 0 :(得分:1)

@user不是全局变量。它是实例变量。在这种情况下,@user是测试套件的实例变量。传递给do...end的{​​{1}}块不在测试套件的上下文中运行,因此它将具有不同的Factory.define和不同的实例变量。相反,您需要将属性值传递给工厂:

self