如何在机架/测试中设置env ['SERVER_NAME']?

时间:2012-12-28 01:49:49

标签: ruby rspec sinatra rack webmock

在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>

1 个答案:

答案 0 :(得分:4)

env助手只能在Sinatra应用程序中访问。

改变它的一种方法是提出请求:

get "/blah", {}, {'HTTP_SERVER_NAME' => 'www.foo.com' }

机架/测试getpost的第3个参数是标题哈希。