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