Testing Chef InSpec检查http请求失败[成功]

Testing Chef InSpec检查http请求失败[成功],testing,exception,chef-infra,infrastructure-as-code,Testing,Exception,Chef Infra,Infrastructure As Code,我正在用Chef InSpec编写一些基础设施测试&我不知道如何测试url不可公开访问。我有下面的代码片段,我目前正在使用 环境={ :ops=>“ops”, } 控件“验证不可公开访问”是否执行 影响1.0 标题“验证我们不可公开访问” environments.each do | uu,env| uri=“http://{env}.internal.example.com” 开始 结果=http(uri、ssl\u验证:true、打开\u超时:2、读取\u超时:5、最大重定向:0) 救援=>

我正在用Chef InSpec编写一些基础设施测试&我不知道如何测试url不可公开访问。我有下面的代码片段,我目前正在使用

环境={
:ops=>“ops”,
}
控件“验证不可公开访问”是否执行
影响1.0
标题“验证我们不可公开访问”
environments.each do | uu,env|
uri=“http://{env}.internal.example.com”
开始
结果=http(uri、ssl\u验证:true、打开\u超时:2、读取\u超时:5、最大重定向:0)
救援=>e
除非e.class==Faraday::ConnectionFailed
提高e
结束
结束
结束
结束
这和我想象的不太一样。我认为在将
http(uri,…)
块传递到descripe函数之前,不会执行它

谢谢

您应该与
描述
块和匹配器一起使用

describe http('url', auth: {user: 'user', pass: 'test'}, params: {params}, method: 'method', headers: {headers}, data: data, open_timeout: 60, read_timeout: 60, ssl_verify: true, max_redirects: 3) do
  its('status') { should eq number }
  its('body') { should eq 'body' }
  its('headers.name') { should eq 'header' }
end