[HTTP]如何将“ www.example.com”更改为“ localhost:3000”

| 嗨,我在Rails应用程序中创建测试用黄瓜。在我的分步方案中,我使用了http基本身份验证,到目前为止它通过了基本身份验证,但是当我想在控制器上调用方法并发布一些参数时,我遇到了问题: 首先,我在步骤中使用此代码,但未能穿越控制器的方法:
post some_admin_url, @params
第二,我使用了此代码,并且也失败了,错误是在运行URI.parse重定向到\“ www.example.com \”时我想去\“ localhost:3000 / admin \”,所以我可以匹配数据:
Net::HTTP.post_form(URI.parse(some_admin_url), {\'from\' => \'2005-01-01\',\'to\' => \'2005-03-31\'}) { |i|  }
未来: @硒   方案:管理员想要激活用户     给定一个以管理员身份登录的用户     和管理页面 脚步 : 给定/ ^一个用户以admin $ /登录     create_user_admin     访问\'/ user_sessions / new \'     fill_in \'user_session [login] \',:with => \'siadmin \'     fill_in \'user_session [密码] \',:with => \'12345 \'     click_button \“ Anmelden \”   结束 给定/ ^ admin页面$ /做     要求\“ net / http \”     需要“ uri”
uri = URI.parse(user_action_admin_users_url)<br/>
http = Net::HTTP.new(uri.host, uri.port)<br/>
request = Net::HTTP::Get.new(uri.request_uri)<br/>
request.basic_auth(\"username\", \"password\")<br/>
response = http.request(request)<br/>
结束
enter code here
救命 !!! 谢谢     
已邀请:
fl00r的答案可能有效,但无法捕获重定向。 如果要捕获重定向,则必须在更高级别上进行更改。对于某些测试框架,有一种方法可以设置默认主机。 使用水豚我们做到了:
Capybara.default_host = \"subdomain.yourapp.local\"
现在,我们实际上使用了Rack中间件(仅在测试env中:),该更改透明地更改了应用程序的env [HTTP_HOST],因此我们不必关心我们使用的是哪个testframework /浏览器驱动程序。 您使用什么框架?     
uname=\"myapp\"
Capybara.default_host = \"http://#{uname}.mywebsite.com:3000\"
Capybara.server_port = 3000 # could be any of your choice
Capybara.app_host = \"http://#{uname}.mywebsite.com:#{Capybara.server_port}\" 
要么
request.host=\"www.myapp.com\"
,当您扩展ActionController :: TestCase时     
尝试将
url
更改为
path
post some_admin_path, @params
要么
post \"http://localhost:3000/#{some_admin_url}\", @params
    

要回复问题请先登录注册