Хорошо, я столкнулся с очень странной проблемой, напрямую связанной с предыдущими блоками. Я делаю интеграционное тестирование через Watir и RSpec. Чтобы проверить, может ли пользователь выполнить вход, я создаю запись «user» в БД с помощью factory_girl.
Поэтому я поставил следующий код:
before(:each) do
@user = Factory(:user)
end
if "should perform a login" do
# do stuff
end
В do stuff
Я вызываю браузер и вижу, как пользователь пытается войти. К сожалению, почему-то он не может этого сделать - «Неверное имя пользователя».
После некоторого исследования я обнаружил, что если я помещаю код для создания пользователя в блок before(:all)
, все волшебным образом работает . Как это? В чем разница между :all
и :each
в этом контексте? Кроме того, если я на самом деле помещаю код для создания пользователя в тело теста, он все равно не работает (т.е. пользователь каким-то образом не добавляется в БД или что-то в этом роде).