我不懂得用savon测试

时间:2015-12-13 15:25:45

标签: ruby-on-rails savon

我正在查看Savon here的测试文档,而我并不了解正在发生的事情。我对使用模拟和存根进行测试是相当新的,也许这就是问题所在。这是一个例子:

require "spec_helper"

# require the helper module
require "savon/mock/spec_helper"

describe AuthenticationService do
  # include the helper module
  include Savon::SpecHelper

  # set Savon in and out of mock mode
  before(:all) { savon.mock!   }
  after(:all)  { savon.unmock! }

  describe "#authenticate" do
    it "authenticates the user with the service" do
      message = { username: "luke", password: "secret" }
      fixture = File.read("spec/fixtures/authentication_service/authenticate.xml")

      # set up an expectation
      savon.expects(:authenticate).with(message: message).returns(fixture)

      # call the service
      service = AuthenticationService.new
      response = service.authenticate(message)

      expect(response).to be_successful
    end
  end
end

我知道我们对灯具建立了期望,即响应应该是什么。

然后我们调用该服务并获得响应。我的问题是: 1.真的打电话了吗? 这个回应是真实的反应吗? 有人可以试着为我解释这个问题吗?

干杯

1 个答案:

答案 0 :(得分:1)

不会发出远程请求。由于您已模拟authenticate,因此响应将与您指定的值短路。但是,可能会首先发生一些其他初步请求,例如WSDL的GET。