铁路假冒路线

时间:2010-08-09 23:36:08

标签: ruby-on-rails rspec mocha rails-routing

具体而言,我正在尝试让ActionController::Routing::Routes.recognize_path识别不在routes.rb的路线,以进行测试。

是否有可能以某种方式模拟或动态添加路线?我正在使用Rspec和Mocha。

2 个答案:

答案 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/fakewebfakeweb宝石可能符合您的需求。

如何注册基本字符串响应(来自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并返回真实请求的响应