Генерировать только тесты из существующих моделей/контроллеров

У меня есть приложение Rails3, основанное на чьей-то работе. По какой-то причине они решили не доставлять тесты с помощью приложения, которое я нахожу расстраивающим.

То, что я хочу сделать, - это подгонять тесты для всех существующих контроллеров и моделей, чтобы я мог начать старт тестов самостоятельно в test:: unit. Я не хочу воссоздавать модели или контроллеры, просто создайте тесты.

Я новичок в Rails и охотился за командой rake, которая могла бы это сделать, но до сих пор не повезло. Любые советы/направление, которые наиболее ценятся.

Ответы

Ответ 1

Я знаю, что это немного старо, но вы можете это сделать:

rails g scaffold Post -s

-s позволяет пропустить уже созданные файлы. Кроме того, если вы не используете флаг, он просто спрашивает вас, хотите ли вы переопределить файл, поэтому не беспокойтесь.

Ответ 2

Чтобы создавать только связанные тестовые файлы для существующего приложения Rails 3, я использую "сгенерировать ресурс", но пропускаю все, что мне не нужно:

rails g resource Post --skip --no-resource-route --no-migration --no-helper --no-assets

Другие параметры можно найти, используя rails generate resource --help

-s, [--skip]     # Skip files that already exist
--resource-route            # Indicates when to generate resource route
[--helper]                # Indicates when to generate helper
[--assets]                # Indicates when to generate assets
[--migration]            # Indicates when to generate migration

Почему бы не использовать generate scaffold? Потому что он может генерировать представления, которые я не использую.

Ответ 3

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

т.е.

rails new temporary
cd temporary
rails g scaffold Post title:string body:text
rails g scaffold Comment post:references author:string body:text
cp -r test ../real_rails_app/

и др.

Этот ответ теперь устарел. Обновленные версии рельсов позволяют создавать только отсутствующие файлы с опцией пропуска.