0
我有一些Rspec測試用於測試模塊。該模塊在我的Rails應用程序中被許多模型使用。爲了儘量減少測試時間,我想避免在測試我的模塊時加載Rails。沒有Rails的測試模塊
問題是,有幾個方法包含救援,那些救援提到了Rails調試器。當Rspec在Rails中看到大寫字母'r'時,由於它認爲它是一個未初始化的常量,所以它有一段糟糕的時間。
我希望如果我將日誌信息包裝到自己的方法中,我可以避免這個問題。這是我想出來的。但是如果我沿着這條路走下去,我需要存儲救援碼或者log_info方法。是對的嗎?我會怎麼做?我應該選擇哪一個存根?
def download_robots_file(page)
file = Net::HTTP.get(URI("#{page}robots.txt"))
rescue StandardError => ex
log_info('robot_file', ex)
end
....
private
def log_info(problem, exception_issue)
Rails.logger.debug("Couldn't download #{problem}: " + exception_issue.inspect)
end
這裏是例子stubing Rails的記錄器: 的http:// stackoverflow.com/questions/8249815/how-to-rspec-mock-ruby-rails-logger-class – 2012-08-15 13:35:07
是的,stub()。和_return()方法就是我要找的。謝謝。你想提交這個答案嗎?我會將其標記爲解決方案。 – 2012-08-15 17:17:46
謝謝添加,以便問題有答案。 – 2012-08-16 11:45:41