如何测试rake任务,cron作业和

时间:2011-10-31 16:10:37

标签: ruby-on-rails ruby-on-rails-3 rspec rake rspec2

我知道在Rails应用程序中,我可以使用Rspec为控制器模型编写测试。

可是:

  1. 如何测试一些rake任务?测试一些rake任务的好方法是什么?
  2. 如何测试每天在固定时间运行某个rake任务的cron作业?
  3. 在Rails应用程序开发中,Rspec是否也可用于上述两种情况,还是有其他方法可以实现这些测试?

    另外:

    我有一个rake任务,用于通过从另一个数据库获取数据并插入应用程序数据库来更新Rails应用程序的数据库(当然首先清理应用程序数据库)

    我想测试这些,怎么做?

2 个答案:

答案 0 :(得分:1)

不要在rake任务中使用代码,而是执行以下操作:

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

这样,您可以像往常一样在customer_charges_spec.rb文件中编写rspec测试。

答案 1 :(得分:0)

也许这会有所帮助:

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

要测试cron作业,您只需重定向到cron本身的日志文件,例如:

  

命令> /tmp/log.txt 2>& 1

通常,如果您打算在rake任务中执行db插入和填充,我会重新考虑并将其写为单独的ruby模块。我认为这种方式更加灵活。