Как тестировать грабли, cron-задания и - PullRequest
0 голосов
/ 31 октября 2011

Я знаю, что в приложении Rails я могу написать тесты для контроллеров и моделей , используя Rspec.

Но:

  1. Как насчет того, чтобы протестировать некоторые грабли? Каков хороший способ проверить некоторые грабли?
  2. Как насчет того, чтобы протестировать задание cron, которое запускает определенное задание рейка каждый день в определенное время?

Можно ли использовать Rspec для двух вышеописанных сценариев разработки приложений на Rails или есть другие способы реализации этих тестов?

Дополнительно:

У меня есть задача rake, которая используется для обновления базы данных приложения Rails путем извлечения данных из другой базы данных и вставки в базу данных приложения (сначала очистите базу данных приложения)

Я хотел бы проверить это, как это сделать?

Ответы [ 2 ]

1 голос
/ 31 октября 2011

Вместо того, чтобы иметь код в ваших задачах rake, сделайте что-то вроде этого:

desc "Charge Customers Daily"
task :charge_customers => :environment do
  CustomerCharges.create
end

Таким образом, вы можете написать тесты rspec в файле customer_charges_spec.rb, как обычно.

0 голосов
/ 31 октября 2011

Может быть, это поможет:

http://www.philsergi.com/2009/02/testing-rake-tasks-with-rspec.html

Чтобы протестировать задание cron, вы можете просто перенаправить его в файл журнала на самом cron, например:

command> /tmp/log.txt 2> & 1

Как правило, если вы собираетесь выполнять вставку БД и прочее в задаче rake, я бы пересмотрел и записал это как отдельный модуль ruby.Я думаю, что это гораздо более гибкий способ.

...