我目前正在使用Rspec请求测试嵌套路由的发布请求。
它设置如下:
describe 'POST /url_contents' do
let!(:role) { create(:role, name: "admin") }
let(:valid_attributes) {
{
jwt: "SAMPLE",
role: role
}
}
context 'when the url is valid' do
before { post "/#{role.name}/1", params: valid_attributes }
it 'returns a status code of 201' do
expect(response).to have_http_status(201)
end
end
end
我正在击中我的控制器,但当我检查params时,我得到了一个嵌套的params:
:params => { :params => { :jwt => "SAMPLE", :role => #<Role:0x0055959d32a888>" }, "controller"=> "auth"... }
如何让params指向我的控制器:jwt
?
答案 0 :(得分:1)
我找到了一个解决方案,但很乐意听到其他想法。
context 'when the jwt is valid' do
before { post "/#{role.name}/1", {
jwt: "SAMPLE",
role: role
}
}
现在params没有嵌套。