Ruby 如何在单元测试中引发超时错误
这是我第一次接触ruby,所以不确定术语是否正确。我试过寻找很多东西,但找不到解决办法 我有这个代码块Ruby 如何在单元测试中引发超时错误,ruby,unit-testing,testing,Ruby,Unit Testing,Testing,这是我第一次接触ruby,所以不确定术语是否正确。我试过寻找很多东西,但找不到解决办法 我有这个代码块 domain\u response=MyDomain::Api::MyApi::Api.new(参数:message.to\u domain\u对象,超时:1000) #:nocov: 案例(response=domain\u response.response) 当MyDomain::Api::MyApi::SuccessResponse ##做点什么 当域::错误响应::超时响应 ##做点
domain\u response=MyDomain::Api::MyApi::Api.new(参数:message.to\u domain\u对象,超时:1000)
#:nocov:
案例(response=domain\u response.response)
当MyDomain::Api::MyApi::SuccessResponse
##做点什么
当域::错误响应::超时响应
##做点什么。
现在我正在尝试测试TimeoutResponse
,我已经编写(尝试)了这个
it“当api调用timeout”时
期望(MyDomain::Api::MyApi::Api){
接收(:新)
}raise_错误(MyDomain::ErrorResponses::TimeoutResponse)
结束
这给了我一个意外的标识符
我也尝试过不提供receive
,但它给了我一个错误,即块是预期的
提出我可以测试的错误的正确方法是什么
更新:
这就是我现在被困的地方
it“当api调用timeout”时
# 1
期望(MyDomain::Api::MyApi::Api)(
接收(:新),
).和\返回(域\ api \实例)
# 2
期望(domain\u api\u instance.response)。接收(:response)。和(domain::ErrorResponses::TimeoutResponse)
expect(domain\u api\u instance.response).to eq(ApiError::Timeout)
结束
但是有了这个代码,我得到了这个错误
1)Rpc::Package::SubPackage::V1::PackageService#api调用超时时的第一次测试
失败/错误:预期(域\u api\u实例.response)。接收(:响应)。和\u提升(域::错误响应::超时响应)
#收到意外消息:响应为(无参数)
我很感谢您提取了一些细节,但更多关于这些名称空间所代表的信息会有所帮助。是的,正如我所说,我对ruby是新手,所以不确定哪些细节是相关的,以及如何将它们提取出来。。。我相信名称空间就是这里的包(java术语?)。除了在其中组织这些类之外,它们都没有任何其他用途。@bashford7更新了问题我认为如果您这样做,您的第一次尝试将修复语法错误。。并引发_error
,而不是)引发_error
。。。rspec DSL一开始可能有点棘手,但实际上它只是链式方法调用。。。