2012-03-08 15 views
4

をコントローラにPOSTのURLパラメータ私は、ユーザーがRSpecの+ Railsの:

POST /controllername/v1 
{ 
    "p2":"v2", 
    "p3":"v3" 
} 

を行うと、POSTは

params={ :p2 => "v2", :p3 => "v3" } 
p1=v1 

あるいは、実際には、コントローラ "コントローラ名" に到達することを手配したい、Iコントローラに他の外観でも動作できます。重要なのは、URLの最後の単語(「v1」)を、p2/v2およびp3/v3と同様に使用するためにコントローラに使用可能にする必要があることです。

そして、これをRpecでテストする必要があります。具体的には、次の(

it 'should route to :create' do 
    assert_routing({ :path => '/controllername/foofoo', 
        :method => :post }, 
       { :controller => "controllername", 
        :action => 'create', 
        :p1 => 'foofoo' }) 
end 

しかし、私はそれに投稿する方法を見つけ出すことはできません。

rspec 2.6.4 
rails 3.0.9 
ruby 1.9.2 

私はルート

match '/controllername/:p1' => 'controllername#create' 

そしてこのRSpecのルールを使用していますと、動作しますコントローラの仕様)。 controllername_controller_spec.rb基本的に

post :create, :p1 => "foo", :p2 => "bar", :p3 => "baz" 

インサイド

、ただで提供パスして、必要なもので一緒にあなたが持っているだろうすべてのパラメータを置く:あなたたとえば

post :create, parameters 
post :create, parameters, 'foofoo' 
post :create, parameters, :p1 => 'foofoo' 
post :create, :p1 => 'foofoo', parameters 
+0

テストログによるテストによるコントローラコールとは何ですか? – shingara

答えて

1

:これらの作業なしリクエスト本体

関連する問題