Можно ли применять миграции к осветительным приборам в Ruby on Rails? - PullRequest
2 голосов
/ 17 февраля 2009

Я нахожу приспособления немного утомительными для использования в Ruby on Rails, отчасти потому, что мне нужно вручную исправлять их после большинства миграций.

Есть ли способ (плагин?), Которым я могу изменить свои приборы при выполнении моих миграций?

Ответы [ 5 ]

2 голосов
/ 17 февраля 2009

В дополнение к ответу womble выше, вы можете генерировать приборы из вашей базы данных разработчиков, используя плагин topfunky's ar_fixures:

http://github.com/topfunky/ar_fixtures/tree/master

По моему мнению, в рельсах есть место для небольшого, хорошо управляемого набора приборов - как и для ложных объектов ... но мы оставим это на другой день!

Также стоит рассмотреть плагин fixture sets-for-rails, хотя я сам не использовал его: http://thatswhatimtalkingabout.org/news/2006/8/31/fixture-sets-for-rails Кажется разумной идеей, хотя я бы очень осторожно относился к созданию множества запутанных наборов осветителей, каждое из которых вам, возможно, придется исправить, когда ваша модель предметной области изменится. Я бы, вероятно, вместо этого использовал макеты (этот плагин выглядит довольно старым и, вероятно, был написан до того, как появился мокко).

1 голос
/ 17 февраля 2009

В сообществе Rails много споров по поводу использования или неиспользования приборов. Лично я использую factory_girl , которую я обновляю вручную при внесении изменений в модели.

Если вы решите использовать приборы, по моему мнению, вы должны вручную обновить их, поскольку они являются частью вашего набора тестов, он должен проверить, что ваш код работает как задумано.

0 голосов
/ 19 февраля 2009

Factory Girl или Machinist - отличная альтернатива осветительным приборам, вам просто нужно определить действительный экземпляр вашей модели, а затем использовать столько, сколько вам нужно. Я использовал Machinist, но начал использовать Factory Girl, поскольку он лучше поддерживает ассоциации между вашими моделями.

0 голосов
/ 17 февраля 2009

Я тоже нахожу приборы немного утомительными, поэтому стараюсь их не использовать.

Вместо этого я использую mocks . Проверьте rspec или мокко .

0 голосов
/ 17 февраля 2009

Я вполне уверен, что есть плагин, который выгружает текущее содержимое базы данных в файлы фикстур (хотя я не помню, чтобы это имя было в верхней части моей головы). Одним из способов решения этой проблемы было бы загрузить приборы, запустить миграцию, а затем использовать этот плагин, чтобы выгрузить приборы обратно.

С другой стороны, если ваша схема БД изменилась, есть вероятность, что ваши условия тестирования, угловые случаи и ограничения теперь различны, поэтому ручной обзор ваших приборов и тестовых случаев, вероятно, не является плохой идеей.

...