おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

コントローラのテストでajaxリクエストを投げるには

通常のコントローラのテストでは、リクエストを投げるためにgetやpost等のメソッドを使います。ですがajaxを利用しているアクションでajaxのみ受け付けるように制限している(verify :xhr => true ...)場合、これらのメソッドではテストが通りません。

このようなときは、ActionController::TestProcessで定義されているxhrメソッドを使用します。

xhr(request_method, action, parameters = nil, session = nil, flash = nil) 

こんな感じで使います。

xhr :post, :create, :id => 1