Griddler Model テストは問題なく動作しています。たとえば、lib/email_processor.rb をインスタンス化して処理することができます。標準の /email_processor へのエンド ツー エンドのポストを行うコントローラー テストを作成します。
問題は、パラメータがポストを通過していないことです。私たちの基本的なコードは次のとおりです。
@postattr= {to: "hello@hello.com", subject: "a subject", attachments: [
ActionDispatch::Http::UploadedFile.new({
filename: 'example_virgin_onetransaction.pdf',
type: 'application/pdf',
tempfile: File.new('testfiles/examplefile.pdf")})
]}
post :create, @postattr
expect(response).to be_success
正しいルートに投稿され、email.attachments オブジェクトが nil であることを除いて処理されるため、機能します。
私たちは試しました
- @postattr.to_json # UTF-8 で無効なバイト シーケンスを与える
- @postattr.to_s.to_json # 動作しますが、パラメータは渡されません
- json 文字列をエンコードする uri
何も正しく処理されていないようです。私たちは何を逃したのですか?