Проблемы с использованием нескольких экземпляров объекта класса?

Я использую 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)

В чем проблема? Как это решить?


person Backo    schedule 19.09.2011    source источник


Ответы (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
person Jesse Wolgamott    schedule 19.09.2011
comment
Спасибо, но теперь у меня другая проблема: stackoverflow .com/questions/7475386/ - person Backo; 19.09.2011