rspec 测试中 Rails 应用程序的端口号
我想使用 rspec 结合 Faraday 和 Faraday_middleware 来测试 Rails 应用程序的 json 响应。要使用 Faraday,需要应用程序 URL。在测试中我想使用本地主机+端口号。
问题是,如何在 rspec 测试环境中获取或设置当前应用程序实例的端口号?
有什么想法吗?
I would like to test the json responses of a rails application using rspec in combination with faraday and faraday_middleware. To use faraday one needs the application URL. In the tests I would like to use localhost + a port number.
The question is, how can I get or set the port number of the current application instance in a rspec test environment?
There are a similar questions but no satisfying answers here and here.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我有同样的需求(Watir+RSpec),但问题是:在测试过程中默认没有运行机架堆栈...
我找到了这个解决方案:
在
spec_helper.rb
中:启动测试所有规格测试都堆叠一次,并在最后杀死它。 (在此示例中,我使用的是 unicorn,但我们可以想象使用任何其他服务器)
在规范中,我重用
HTTP_PORT
常量来构建 URL:I had the same need (Watir+RSpec), but the problem is: there is no Rack stack running by default during tests...
I found this solution:
In
spec_helper.rb
:Which start the test stack once for all spec tests, and kill it at the end. (In this sample, I am using unicorn, but we can imagine using any other server)
In the spec, I reuse the
HTTP_PORT
constant to build URL: