2011-09-19 87 views
0

我使用Ruby on Rails的3.0.9和RSpect 2.我想通过以下方式重构了一些规范文件(为了用更少的代码相似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) 

问题是什么?我该如何解决这个问题?

回答

0

你需要你的示例代码内部的“它”阻碍

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 
+0

谢谢,但现在我有一个问题:http://stackoverflow.com/questions/7475386/trouble-on-setting-该电流学科 – Backo

相关问题