1

プレイ機能テストでは、いくつかのコントローラーメソッドへのリクエストを実行しています。コントローラーでは、フラッシュスコープを使用してパラメーターを取得し、それを操作しています。ただし、テストでは、このフラッシュパラメーターを設定できません。試してみました:

Flash.current().put("key","value");

しかし、それはテストで NullPointerException を与えます。

コントローラのフラッシュ スコープは空です:

flash.get("key")

フラッシュスコープのセットアップ方法 このフラッシュ値を設定して読み取るワークフロー全体をテストしたくはありません。この 1 つの要求だけに集中したいと思います。

4

1 に答える 1

1

機能テストの実行は、機能テストのテスト セットアップとは別のスレッドで行われるため、Flash.current() の設定は機能しません。

ただし、FunctionalTestクラスは呼び出し間で Cookie を保存します。

したがって、フラッシュスコープを使用するリクエストをテストする1つの可能性は、アプリケーションで実際にフラッシュスコープを設定するリクエストを最初に呼び出すことです-ただし、説明によると、それは望ましくありません。

もう 1 つの可能性は、Flash スコープの変数を Cookie に手動で入れることです。形式については、Request相談する必要がありplay.mvc.Scope.Flash.save()ます。

于 2012-06-18T12:39:34.930 に答える