2017-07-04 15 views
0

私はAkka HTTP 10.0.9を使用していますが、私の単体テストが動作するリモートアドレスを持つように苦労しています。akka httpリモートアドレス

例えばユニットテストは:

Get("/").withHeaders(
    RawHeader("Remote-Address", "192.168.1.1"), RawHeader("X-Forwarded-For", "192.168.1.1") 
) ~> route ~> check { 
    status must_== StatusCodes.OK 
} 

とWebサーバーのコードで

extractClientIP{ clientAddr => 
    complete(s"$clientAddr") 
} 

コマンドライン経由でアプリを実行している、クライアントのアドレスが正しく返されます。しかし単体テストで実行すると、クライアントのアドレスは常に「不明」に戻ります

私は間違っていますか?

答えて

0

これは、アッカのhttpはRawHeaderでテストを扱うことができないによって引き起こされます。あなたは、テストのために使用して設定されIPためRemote-Addressオブジェクトを、それを解決することができます:

import akka.http.scaladsl.model.headers.`Remote-Address` 
Get().withHeaders(
    `Remote-Address`(RemoteAddress(new InetSocketAddress("192.168.1.1", 23))) 
) 
+0

ああ男なので、リモート・アドレスの種類は非常に魔法のですか? –