功能测试"获取"请求和https协议

jef*_*unt 4 get ruby-on-rails functional-testing

我正在尝试为必须在https上运行的操作编写功能测试.我没有测试HTTPS重定向 - 我已经知道它可以在另一个测试中运行.

我想要做的是:

get :new, :protocol => "https://"
assert_redirected_to :root
Run Code Online (Sandbox Code Playgroud)

但这不会通过https发出请求.是否有"get"选项可以让我更改协议?

此外,如果我尝试指定url(例如:get"https:/test.host/do/something"),我会收到路由错误,因为我的rails级别没有用于https的路由 - 它在我的网站上处理服务器级别.

jef*_*unt 8

我在这里找到了一个更简单的答案:http: //railspikes.com/2008/9/12/testing-ssl

这是将以下行放在(a)每个需要SSL的功能测试的开头,或者(b)在'setup'方法中,如果控制器中的每个动作都使用SSL.

@request.env['HTTPS'] = 'on'
Run Code Online (Sandbox Code Playgroud)

这会使用https预先填写所有请求