【发布时间】:2014-12-21 05:43:03
【问题描述】:
我有一个带有一个 post 方法和一个 get 方法的 padrino 控制器。我可以使用 rack-test 来测试 get 方法而不是 post 方法。当我测试请求时返回 403。我认为这是因为 padrino 内置了 csrf 保护,因为当我用set :protect_from_csrf, true 注释掉该行时,我可以测试发布路线。显然我不想注释掉这一行,因为 csrf 很有用。我怎样才能获得临时访问权限来测试这些路由以进行测试?
控制器
SailPowerCourses::Admin.controllers :owners do
get :index do
puts 'hello'
end
post :index do
puts params
end
end
测试
class OwnersControllerTest < MiniTest::Test
def setup
app SailPowerCourses::Admin
end
def test_creates_an_owner
email = 'test@example.com'
assert_empty Owner
post '/owners', owner: {email: email}
puts last_response.status
refute_empty Owner
end
def test_other
email = 'test@example.com'
get '/owners', owner: {email: email}
end
end
```
【问题讨论】:
标签: ruby sinatra minitest padrino rack-test