使用多个类对象实例时出现问题?

时间:2011-09-19 17:35:22

标签: ruby-on-rails ruby ruby-on-rails-3 rspec rspec2

我正在使用Ruby on Rails 3.0.9和RSpect 2.我试图以下列方式重构一些spec文件(为了测试类似User类对象属性值的代码较少):

let(:user1) { Factory(:user, :users_attribute_a => 'invalid_value') }
let(:user2) { Factory(:user, :users_attribute_b => 'invalid_value') }
let(:user3) { Factory(:user, :users_attribute_c => 'invalid_value') }

[ user1, user2, user3 ].each do |user|
  ...
end

但是,如果我运行上述测试,我会收到以下错误:

undefined local variable or method `user1' for #<Class:0x00000103ddb158> (NameError)

有什么问题?我该如何解决?

1 个答案:

答案 0 :(得分:0)

您需要在“it”块

中包含示例代码
describe User do

  let(:user1) { Factory(:user, :users_attribute_a => 'invalid_value') }
  let(:user2) { Factory(:user, :users_attribute_b => 'invalid_value') }
  let(:user3) { Factory(:user, :users_attribute_c => 'invalid_value') }

  it "should be whatever" do

    [ user1, user2, user3 ].each do |user|
      ...    
    end

  end
end