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 = \
答案 0 :(得分:1)
@user
不是全局变量。它是实例变量。在这种情况下,@user
是测试套件的实例变量。传递给do...end
的{{1}}块不在测试套件的上下文中运行,因此它将具有不同的Factory.define
和不同的实例变量。相反,您需要将属性值传递给工厂:
self