私は一生、ここで何がうまくいかないのか理解できません。これは状況です:
- PDFの添付ファイルにペーパークリップを使用するドキュメントモデルがあります
- 機能テストがドキュメントをアップロードして失敗する
- この理由は、それがpdfファイルであるという私の検証です-どういうわけかその検証は失敗します
- ただし、ファイルはpdf であり、検証は失敗しません。
- 検証はテストでのみ失敗します-問題のあるファイルをアップロードして手動で行うと、まったく問題なく動作します
これが私の失敗したテストです(カウントは1つ増えません):
test "should create document" do
assert_difference('Document.count') do
post :create, document: { pdf: fixture_file_upload("../files/document_test_file.pdf"), language: @document.language, published_on: @document.published_on, tags: @document.tags, title: @document.title, user_id: @user }
end
assert_redirected_to document_path(assigns(:document))
end
これは、ドキュメント モデルでの私の検証です。
def document_is_a_pdf
if !self.pdf.content_type.match(/pdf/)
errors.add(:pdf, "must be a pdf file")
false
end
end
モデルでその検証を呼び出さない場合、テストは正常に実行されます。ここで何が間違っていますか?