我有一个带有单个 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
```