【问题标题】:Rails routes testingRails 路由测试
【发布时间】:2015-09-04 12:47:40
【问题描述】:

我是测试新手,我有一个问题。

这段代码测试该路由是否正确,好吗?

test "root should route to home#index" do
assert_routing "/", {controller: "home", action: "index"}
end

我如何测试相反的结果?我有

resources :sessions, :only=>[:new, :create, :destroy]

在我的路线中。我将如何测试您无法进入会话#edit?

难道我不应该测试吗?

编辑:我忘了提,我使用的是默认工具。

【问题讨论】:

    标签: ruby-on-rails testing tdd


    【解决方案1】:

    你可以试试这个,除非测试 assert_generates 引发“UrlGenerationError” => 无法为会话生成 url#edit

    test "route should not exist" do
      begin
        assert_generates "sessions/edit", controller: :sessions, action: :edit
        flunk "Route to should not exist"
      rescue ActionController::UrlGenerationError
      end
    end
    

    【讨论】:

    • 哦...这是一个不错的方法,非常感谢:)
    【解决方案2】:

    如果你使用 RSpec,你可以这样做

    it "does not route to sessions/edit" do
      expect(:get => "/sessions/edit").not_to be_routable
    end
    

    有关编写路由规范的更多信息,请参阅https://relishapp.com/rspec/rspec-rails/docs/routing-specs/be-routable-matcher

    【讨论】:

    • 不,对不起,我忘了提。我正在使用默认工具。
    猜你喜欢
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多