5

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

4

1 回答 1

5

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

更改它的一种方法是在发出请求时:

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

机架/测试的第三个参数get或者post是标头哈希。

于 2012-12-29T19:58:35.427 回答