【问题标题】:Trouble on using multiple class object instances?使用多个类对象实例有问题吗?
【发布时间】:2011-09-19 17:35:22
【问题描述】:

我正在使用 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)

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

【问题讨论】:

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


    【解决方案1】:

    您需要将示例代码放在“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
    

    【讨论】:

    猜你喜欢
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 2012-03-19
    相关资源
    最近更新 更多