私はRails 3.1のファイルダウンロード機能をテストしようとしているリクエスト仕様を持っています。 (一部)の仕様は次のようになります。Rails、Paperclip、RSpec要求仕様でファイルをテストするには?
get document_path(Document.first)
logger(response.body)
response.should be_success
それはで失敗します。
Failure/Error: response.should be_success
expected success? to return true, got false
しかし、私は、ブラウザでダウンロードをテストする場合、それは正しくファイルをダウンロードします。ここで
は、コントローラ内のアクションです:
def show
send_file @document.file.path, :filename => @document.file_file_name,
:content_type => @document.file_content_type
end
そして、私のロガーが応答に関する情報を提供します:
<html><body>You are being <a href="http://www.example.com/">redirected</a>.</body></html>
私はこのテストに合格するために取得できますか?
更新:
として、いくつかの私のbefore_filtersの一つは、リダイレクトをしていた、と指摘しました。その理由は、テストでログインするために私はカピバラを使用していたが、サイトをナビゲートするための方法を使用していないからです。
click_link 'Libraries'
click_link 'Drawings'
click_link 'GS2 Drawing'
page.response.should be_success #this still fails
しかし、実際の応答が成功したかどうかをテストする方法はまだわかりません。私はここで間違って何をしていますか?
[FWIW私はRailsの3.0、工夫、カンカンとWebratを使用していますが]にサウンド私はアクションが実行される前にリダイレクトされています(ユーザーがログインしていることを確認する)前のようなフィルタです。 –
あなたにスポットがあります。私はまだ応答をテストするように見えることはできません。 – croceldon
@croceldon:下のログイン方法(AuthenticationHelpers内)が違いを生み出すかどうかを教えてください。同じ問題かどうかを知りたいと思っています。 –