little ruby blog

небольшой блог о ruby, rails и разной фигне

История дурацкой ошибки или читайте документацию

| Comments

Умудрился полдня потратить на непонятную ошибку. Всё было как обычно - создал проект, накатил туда RSpec, Capybara и Poltergeist, насочинял фабрик для FactoryGirl - и тут внезапно обнаружил, что тесты, которые завязаны на фабриках - не проходят.

Причем поведение тестов очень странное. Данные в контексте теста - создаются, pry мне это абсолютно чётко доказал. А вот в контроллере, где идет работа с этими данными - пусто.

Спасибо Богдану Гусеву, отпустил замечание, что из такого странного поведения следует, что данные в контексте теста и в контексте контроллера - разные транзакции.

И после этого в spec_helper.rb обнаружилась одна строчка, которая туда пришла из генератора RSpec. Собственно, после установки параметра use_transactional_fixtures в false и пропало необычное поведение, тесты начали работать.

Сейчас изучаю, почему же всё вело себя именно так.

P.S. Одно запомнил надолго - spec_helper.rb по умолчанию для FactoryGirl не подходит. Кстати, мне кажется, или фикстуры уже немного менее популярны, чем FactoryGirl?

Comments