Ruby on Rails アプリで取り組んでいる RESTful Web サービスの機能テストを書きたいと思います。
このテストは、リクエストの本文がフォームではなくプレーンな XML ドキュメントである POST リクエストのものです。これを行う方法についての指針はありますか?私が直面している問題は、post メソッドの呼び出しで本文 XML を指定する方法です。
Ruby on Rails アプリで取り組んでいる RESTful Web サービスの機能テストを書きたいと思います。
このテストは、リクエストの本文がフォームではなくプレーンな XML ドキュメントである POST リクエストのものです。これを行う方法についての指針はありますか?私が直面している問題は、post メソッドの呼び出しで本文 XML を指定する方法です。
以下は私のために働いた:
@request.env['RAW_POST_DATA'] = MY_XML_STRING
post :create
@request.env['RAW_POST_BODY']
目的の入力ストリームに設定することで、それを実行できる場合があります。
http://de.softuses.com/6051で次の解決策を見つけました
message = '<?xml version="1.0" encoding="UTF-8"?>
<tag>content</tag>'
@xml_request_headers ||= {}
@xml_request_headers['HTTP_ACCEPT'] = @xml_request_headers['CONTENT_TYPE'] = 'application/xml'
post '/controller/action.xml', message, @xml_request_headers
メソッドで実際に定義@xml_request_headers
し、setup
このファイルのすべてのテストで使用できます。test_helper.rb
より多くのファイルで必要な場合は、に配置することをお勧めします。
Net:HTTP を使用して REST サービスをテストするテスト スクリプトを作成しました。