アクション構成を使用してコントローラー アクションをテストしたいと考えています。構成されたアクションとそのテスト コードの例を次に示します。
Secured トレイト:
trait Secured {
def username(request: RequestHeader) = request.session.get(Security.username)
def onUnauthorized(request: RequestHeader) = Results.Redirect(routes.Auth.login)
def withAuth(f: => String => Request[AnyContent] => Result) = {
Security.Authenticated(username, onUnauthorized) { user =>
Action(request => f(user)(request))
}
}
コントローラー:
MyController extends Contrller with Secured {
def simple = Action { Ok("ok") }
def simpleWithauth = withAuth { implicit username => implicit request=> Ok("ok") }
}
テストコード:
// This work fine
val result1 = controller.simple()(FakeRequest())
// This wont compile
val result2 = controller.simpleWithAuth()(FakeRequest())
後者はRequest[Action[AnyContent], AnyContent]を必要としますが、FakeRequest はRequest[AnyContent] を返します
適切なタイプの偽のリクエストを作成する方法についての指針はありますか?