如何使用Rspec测试wash_out控制器

时间:2012-07-18 11:20:33

标签: ruby-on-rails soap rspec

我已经使用wash_out gem实现了一个Rails控制器。

我的控制器看起来像这样:

class TestController < ApplicationController
  include WashOut::SOAP

  soap_action "int_to_string",
              :args   => :integer,
              :return => :string
  def int_to_string
    render :soap => params[:value].to_s
  end
end

routes.rb中:

MyApp::Application.routes.draw do
  wash_out :test
end

我不知道如何用Rspec测试这个控制器。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在此链接中,您可以找到一个好的方法

http://blog.johnsonch.com/2013/04/18/rails-3-soap-and-testing-oh-my/

该方法是:

  • 使用savonrb gem创建客户端
  • 比较测试中的结果

答案 1 :(得分:0)

您可以使用以下内容来指定默认的wsdl路由:

 require "spec_helper"

describe MywsdlController do
  describe "routing" do

    it "mywsdl/wsdl route to mywsdl#_generate_wsdl" do 
      get("/mywsdl/wsdl").should route_to("mywsdl#_generate_wsdl")
    end

  end
end

然后我建议在规范1中有一个soap目录,每个可用服务都有一个spec文件,这样你就可以在之前启动soap客户端:每个都有测试参数,这可能会给你一个规范场景。