在Sinatra测试中,env['SERVER_NAME']
默认为www.example.com
。如何将其设置为某个任意域?
Capybara有.default_host
方法,但没有使用Capybara。
或者,是否可以更改env [DEFAULT_HOST
]?
使用RSpec,Sinatra,WebMock。
编辑:将env['SERVER_NAME'] = 'www.foo.com'
添加到RSpec测试会引发异常:
NameError: undefined local variable or method 'env' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007fe6ce3b5ff8>
答案 0 :(得分:4)
env
助手只能在Sinatra应用程序中访问。
改变它的一种方法是提出请求:
get "/blah", {}, {'HTTP_SERVER_NAME' => 'www.foo.com' }
机架/测试get
或post
的第3个参数是标题哈希。