【问题标题】:How can I remove a single route in test environment?如何在测试环境中删除单个路由?
【发布时间】:2016-07-04 05:39:34
【问题描述】:

所以,我有一个测试,我在控制器上创建一个动作来测试某些东西。为此,我在控制器上添加了操作,并为我的操作创建了一个路由,如下所示:

before do
    test_routes = Proc.new do
        get    'mocked_action', to: 'custom_controller#mocked_action',  as: :mocked_action
    end
    MyApp::Application.routes.send :eval_block, test_routes
end

那么,我该如何具体删除这条路线?

after do
    #Remove my temp route here
end

【问题讨论】:

  • 您能描述一下您要解决的实际问题吗?为什么您需要通过 HTTP 调用您正在测试的任何行为?
  • 我有一个用户权限模块,为了测试这个模块,我正在创建一个虚构的控制器并包含这个模块。我需要测试用户是否无权访问它无法访问的某些功能。

标签: ruby-on-rails ruby ruby-on-rails-4 routes tdd


【解决方案1】:

您可以通过使用动态约束来切换设置临时路由:http://raysrashmi.com/2014/07/23/rails-routes-constraints/

可以通过设置标志等来启用和禁用前后挂钩。 一般来说,我想知道您的测试设置是否应该以这种方式完成。在我看来,取决于用户角色会更直接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2014-06-20
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    相关资源
    最近更新 更多