"something", :user_id => "-6ren">
gpt4 book ai didi

ruby-on-rails - 使用 rspec 调用特定的 url

转载 作者:数据小太阳 更新时间:2023-10-29 07:02:31 26 4
gpt4 key购买 nike

我想在 rspec 中创建一个 get 请求。

    get :exec, {:query=>"bla",
:id => "something",
:user_id => "user"
}

这构建了一个 URL,如:/user/query/something/exec?query=bla

问题是我的 Controller 检查它收到的请求并且 url 必须如下所示:/user/query/something/_XXX_/exec?query=bla

我怎样才能在 rspec 中做这样的事情? (XXX 硬编码在 routes.rb 文件中。)

最佳答案

我假设您指的是 Controller 规范。

当您像示例中那样传入哈希时,键将与路由中的变量进行匹配。对于与路由不匹配的任何键,键/值对将作为查询字符串附加。

例如,假设您的规范中有这个:

get :exec, :query => 'foo', :id => '1', :user_id => 42

你的 route 有这个(Rails 3 风格):

match '/exec/:user_id/:id' => 'whatever#exec'

然后规范将替换您提供的键/值对并使用以下路径模拟请求:

/exec/42/1?query=foo

因此,要将您的规范连接到您的路由,只需确保您将路由中的变量名称与规范请求中的参数正确匹配即可。

关于ruby-on-rails - 使用 rspec 调用特定的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462688/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com