モジュールのテストに使用している Rspec テストがいくつかあります。このモジュールは、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