我有一些用于测试模块的 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