使用多个类对象实例时遇到问题?

发布于 2024-12-05 06:29:47 字数 586 浏览 0 评论 0原文

我在Rails 3.0.9和Rspect 2上使用Ruby。我试图以以下方式重构一些SPEC文件(为了使用较少的代码测试相似的代码 user class obsoct object属性值):

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)

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

I am using Ruby on Rails 3.0.9 and RSpect 2. I am trying to refactoring some spec file in the following way (in order to test with less code similar User class object attribute values):

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

However, if I run the above test I get the following error:

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

What is the problem? How can I solve that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

好菇凉咱不稀罕他 2024-12-12 06:29:47

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

You need your example code inside of a "it" block

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文