gpt4 book ai didi

ruby-on-rails - 我的 SOAP 服务的集成/请求 rspec 测试

转载 作者:数据小太阳 更新时间:2023-10-29 08:00:27 28 4
gpt4 key购买 nike

我有一部分 Rails 2 Web 服务应用程序用作 SOAP 服务(历史原因,应用程序的其余部分是 REST)。只需两个操作 AddLeadShowLead,wsdl on /soap/wsdl

我想通过 Rspec 集成测试来测试这个操作。尝试使用 Savon gem (/spec/integration/soap_spec.rb):

require "spec_helper"
require 'rubygems'
require 'savon'

describe "Leads" do

before(:all) do
wsdl= "http://localhost:3000/soap/wsdl"
wsdl = "http://www.example.com/soap/wsdl"
@client = Savon.client(:wsdl => wsdl )

puts("WSDL actions: #{@client.operations}")
end
end

但是我找不到应该使用哪个 URL 来指向 WSDL。

URL localhost:3000 无效,以错误结尾:

 Errno::ECONNREFUSED in 'Leads before(:all)'
Connection could not be made, because target server it actively denied. - connect(2)

URL www.example.com(测试 url 助手的输出)也不起作用,以错误结尾:

   Wasabi::Resolver::HTTPError in 'Leads before(:all)'
Error: 302

有什么想法吗?

福田汽车

最佳答案

尝试以下链接:http://blog.johnsonch.com/2013/04/18/rails-3-soap-and-testing-oh-my/

在您的 describe block 内使用 HTTPI 机架适配器,然后配置该适配器以安装您的应用程序。这将使您能够使用特定的 url。

require 'spec_helper'
require 'savon'

describe API::MyService do
HTTPI.adapter = :rack
HTTPI::Adapter::Rack.mount 'application', MyApp::Application

it 'can get a response' do
application_base = "http://application"
client = Savon::Client.new({:wsdl => application_base + '/soap/wsdl' })
...
...
end
...

关于ruby-on-rails - 我的 SOAP 服务的集成/请求 rspec 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17185639/

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