gpt4 book ai didi

ruby - 使用 Savon 测试本地网络服务

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:42 25 4
gpt4 key购买 nike

我正在编写一个 gem 来为 Ruby 添加对 SOAP 服务的支持(我讨厌自己这样做,但是,你知道,遗留系统感到孤独,需要找人谈谈),我想知道是否有办法我可以使用 Savon 作为客户端库编写一些测试。

我的问题是:如何告诉 Savon 使用 Rack::Test 调用 WebService?

gem 资源托管于此:https://github.com/elementar/shapewear

最佳答案

我最终使用了 WebMock gem 。结果如下:

https://github.com/elementar/shapewear/blob/master/spec/shapewear/savon_usage_spec.rb

describe Shapewear do
describe "usage with SOAP clients" do
before do
stub_request(:get, "http://services.example.com/complete/soap/wsdl") \
.to_return :body => CompleteService.to_wsdl,
:headers => {'Content-Type' => 'application/xml'}

stub_request(:post, "http://services.example.com/complete/soap") \
.to_return :body => lambda { |r| CompleteService.serve(r) },
:headers => {'Content-Type' => 'application/xml'}
end

it "should work with Savon" do
client = Savon::Client.new 'http://services.example.com/complete/soap/wsdl'
response = client.request :echo_in_uppercase, :xmlns => 'http://services.example.com/v1' do
soap.body = {:text => 'uppercase text'}
end

response.body[:echo_in_uppercase_response][:body].should == 'UPPERCASE TEXT'
end
end
end

关于ruby - 使用 Savon 测试本地网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8717522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com