2

ワイヤーモック手法を使用して java.net.Socket クラスをモックする必要があります... Socket クラスをワイヤーモックすることは可能ですか?

4

1 に答える 1

5

少し遅すぎたとしても、この質問が後で誰かによって提起された場合に備えて:

私もまったく同じ状況でした。ServerSocket を開始/停止し、テスト ケースからの Socket リクエストを受け入れる別の JUnit @Rule を実装しました。

コードは会社のものなので、あなたと共有することはできません。しかし、パワースライドを共有することは許可されています。これは、それを達成する方法を確実に支援します.

ここに画像の説明を入力

JUnit では、指定されたポート (私の場合: 9999) へのソケット通信を確立するクライアント/サービスを使用しています。ソケットに対するすべての WireMock 応答は、HTTP 要求/応答と同じスタイルで記述されます。「any」メソッドを使用した単純化された例:

WireMock.givenThat(WireMock.anyUrl()).withRequestBody(WireMock.containing("blah blah")).willReturn(WireMock.aResponse().withBody("Hello World!")));

ソケット/クライアントが「何とか」で本体を送信している場合、WireMock は「Hello World!」を返します。HTTP エンティティとして、HTTP エンティティのコンテンツがソケット プロキシによってソケット/クライアントに転送されます。

お役に立てば幸いです、クリス

于 2017-03-03T09:00:14.820 に答える