Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何在单元测试中引发超时错误_Ruby_Unit Testing_Testing - Fatal编程技术网

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 ##做点什么 当域::错误响应::超时响应 ##做点

这是我第一次接触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
##做点什么
当域::错误响应::超时响应
##做点什么。
现在我正在尝试测试
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一开始可能有点棘手,但实际上它只是链式方法调用。。。