具体而言,我正在尝试让ActionController::Routing::Routes.recognize_path
识别不在routes.rb
的路线,以进行测试。
是否有可能以某种方式模拟或动态添加路线?我正在使用Rspec和Mocha。
答案 0 :(得分:3)
我完全不知道是否可行,但你可以尝试这样的事情:
class ApplicationController < ActionController::Base
rescue_from ActionView::MissingTemplate do |exception|
# use exception.path to extract the path information
ActionController::Routing::Routes.draw do |map|
# Add your dynamic route using path here and then do a redirect to it
end
end
end
答案 1 :(得分:0)
http://github.com/chrisk/fakeweb的fakeweb
宝石可能符合您的需求。
如何注册基本字符串响应(来自README):
FakeWeb.register_uri(:get, "http://example.com/test1", :body => "Hello World!")
测试:
Net::HTTP.get(URI.parse("http://example.com/test1"))
返回"Hello World!"
Net::HTTP.get(URI.parse("http://example.com/test2"))
在这种情况下,绕过FakeWeb并返回真实请求的响应