印刷は、バックエンドや、ブラウザーのレンダリング エンジンでさえも気にする必要があるとは思いません。これは、カスタム機能 (Chrome など) またはデフォルトのオペレーティング システムの印刷パネル (Safari など) を介してブラウザでサポートされているものにすぎません。
これは次の質問につながります。あなたがテストしたいのは何ですか?印刷が機能するかどうかをテストしますか? これは、RSpec テストの範囲外のようです。あなたはすでに、ダウンロードされるユーザー用の PDF を作成する機能をテストしたと言っています。その瞬間から、その PDF に何が起こってもアプリケーションの範囲外になるため、テストすることはできず、テストするべきではありません。
PDF 機能が機能する限り、アプリケーションが機能することがわかります。個人的な経験からすると、次に起こることは完全にブラック ボックスであり、PDF が何であるかを理解していない人もいれば、プリンターの制御方法を知らない人もいます。したがって、このテストに集中する代わりに、PDF ダウンロードに付随するドキュメントを書くことに集中します。
アップデート
Window.print()
関数を使用すると、次のことができます。
Window.print()
チェックする値は返されませんが、その関数を独自の関数内にラップして、独自の戻り値を追加できます。
もちろん、それはラッパー関数が実際に呼び出されることをテストするだけで、print() 関数が正しく起動されたかどうかはテストしません。しかし安心してください。印刷機能がブラウザーで動作することを確認しているはるかに大きな企業があるため、Rails の基本的なメソッド ( など) をテストしてはならないのと同じように、や などvalidations
のブラウザーのテストもスキップする必要があります。print()
back()
確認できる唯一のことは、ユーザーがjavascript を無効にしている場合に解決策を提供することです。