Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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 WebMock:获取通过方法传递的实际参数,并在Spec文件中使用它们_Ruby_Webmock - Fatal编程技术网

Ruby WebMock:获取通过方法传递的实际参数,并在Spec文件中使用它们

Ruby WebMock:获取通过方法传递的实际参数,并在Spec文件中使用它们,ruby,webmock,Ruby,Webmock,我正在使用WebMock来清除HTTP请求。我有一个特殊的调用,在这里,我希望能够捕获传递到send()方法中的实际参数,而不是创建要传递的伪数据。因此,我需要访问我的规范中的那些实际参数,我想我需要以某种方式捕获该上下文 例如,在我的应用程序中,我调用这个方法: send(method, uri, :body => data_file) 在我的spec文件中,我正在存根该方法: FoobarModule.should_receive(:send).with(args) 在We

我正在使用WebMock来清除HTTP请求。我有一个特殊的调用,在这里,我希望能够捕获传递到send()方法中的实际参数,而不是创建要传递的伪数据。因此,我需要访问我的规范中的那些实际参数,我想我需要以某种方式捕获该上下文

例如,在我的应用程序中,我调用这个方法:

  send(method, uri, :body => data_file)
在我的spec文件中,我正在存根该方法:

  FoobarModule.should_receive(:send).with(args)
在WebMock,Rspec中,有没有任何方法可以获取应用程序中调用send()的上下文,并获取我传递的参数,以便在规范中使用它们,并用args替换它们


我已经看过了文档,但没有看到太多关于这方面的内容。如果有人知道这一点,我将非常感谢你的帮助。谢谢。

使用WebMock,您可以使用请求回调来捕获请求数据:

WebMock.allow_net_connect!
WebMock.after_request do |request_signature, response|
 puts request_signature
end

使用WebMock,您可以使用请求回调来捕获请求数据:

WebMock.allow_net_connect!
WebMock.after_request do |request_signature, response|
 puts request_signature
end

试着这么做,但现在request_签名并没有返回我所期望的——一个Proc对象——所以我不确定如何访问这些请求方法。也许我的存根错了?试着这么做,但现在请求\签名并没有返回我所期望的--一个Proc对象--所以我不确定如何访问这些请求方法。也许我的存根错了?