什么/可以假装:做什么?

时间:2016-03-25 18:15:50

标签: ruby-on-rails ruby api

我继承了这段代码,我知道这是为假api调用创建一个存根。我不明白它是如何工作的。它只能返回JSON吗?我能否仅仅为200次成功做出回应?有没有关于此的文件?

class GuessTransaction < ActiveRestClient::Base
  request_body_type :json

  get :all, '/transaction', fake: [{last_name:"Durdan", first_name:"Tyler"}]
  get :find, '/transaction/:id', fake: {id: "1", first_name:"Tyler", last_name: "Durdan"}
  post :create, '/transaction', fake:->(request) { {id: 12345 } }
end

2 个答案:

答案 0 :(得分:2)

如果您阅读了active-rest-client的文档 你可以找到这个:

  

Faking Calls

     

有时候还没有开发API,所以你想要   伪造API调用响应。要做到这一点,你可以简单地传递假货   映射包含响应的调用时选项

class Person < ActiveRestClient::Base
  get :all, '/people', fake: [{first_name:"Johnny"}, {first_name:"Bob"}]
end
  

您可能希望在伪造数据时运行proc(从中输入信息)   响应中的参数或返回不同的响应   取决于参数)。 要执行此操作,只需将proc传递给:fake

class Person < ActiveRestClient::Base
  get :all, '/people', fake: ->(request) { {result: request.get_params[:id]} }
end

答案 1 :(得分:1)

基于active-rest-client的{​​{3}}。

<强>摘录

        return handle_response(
          OpenStruct.new(
            status:200, 
            body:fake, 
            response_headers:{
              "X-ARC-Faked-Response" => "true", 
               "Content-Type" => content_type
            }
           )
         )

它似乎总是以200回复,因此您可以执行类似fake:{}

的操作

这将以200和空body作为回复。

即使fake: true也可以。