Dav*_*mpy 1 ruby regex rspec ruby-on-rails mocking
我想在我的 rspec 测试中使用 stub_reuest模拟对给定站点的所有请求......不仅仅是我今天知道的 URL。特别是,我想引发异常或超时来模拟 REST 服务脱机或损坏。
如何只匹配一个站点的所有 URL?如何阻止给定主机的任何 URL?
使用:any以匹配所有的方法,和正则表达式匹配的所有URL的:
their_site = 'http://rest.example.com'
stub_request(:any, /#{their_site}.*/ ).to_raise(Errno::ECONNREFUSED)
Run Code Online (Sandbox Code Playgroud)
或者
their_site = 'https://rest.example.com:443/api'
stub_request(:any, %r[#{their_site}.*] ).to_timeout
Run Code Online (Sandbox Code Playgroud)
或者
stub_request(:any, %r[#{their_site}.*] )
.to_return(status: 500, body: 'Sorry, mate.')
Run Code Online (Sandbox Code Playgroud)
或者
stub_request(:any, %r[#{their_site}.*] )
.to_return(status: 404)
Run Code Online (Sandbox Code Playgroud)
或者
stub_request(:any, %r[#{their_site}.*] )
.to_return(status: 200, 'We tried our best.')
Run Code Online (Sandbox Code Playgroud)
如果你想打破所有外部命中,你可以用一个正则表达式来做到这一点:
stub_request(:any, /.*/ ).to_timeout
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
892 次 |
| 最近记录: |