Использование предустановленных значений в базе (rspec rails testing)?

Добрый день, возник такой вопрос:
Как правильно в rails решается следующая задача:
Есть пользователь, у пользователя может быть только одна роль. Всего есть N возможных видов ролей.
Сейчас есть табличка roles с полями id, name
И соответственно users: id, name, role_id
В миграциях есть миграция которая заполняет таблицу roles предустановленными значениями: id и name.
Как мне сконфигурировать rspec rails что бы в при тестировании в таблице roles были заранее подготовленные значения? следует писать в seeds.rb? Что произойдет если мне нужно будет добавить новую роль когда база будет уже большой и ничего терять будет нельзя: думаю лучше написать миграцию с логикой, чем запиховать эти значения в seeds.rb? Какой тут rails way?
  • Вопрос задан
  • 212 просмотров
Пригласить эксперта
Ответы на вопрос 2
@malroc
Правильно в данном случае именно seeds.rb а не миграция, причём не только для тестирования.
Только его грамотно написать нужно, чтобы не вставлял уже существующие значения. Тогда rake db:seed можно будет вызывать в любой момент времени без всяких опасений.
Ответ написан
Freika
@Freika
Senior Ruby on Rails developer
Откройте для себя чудесный мир фабрик: https://github.com/thoughtbot/factory_girl/

Они помогут вам решить практически все проблемы с созданием объектов для тестирования.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы