ワイヤーモック手法を使用して java.net.Socket クラスをモックする必要があります... Socket クラスをワイヤーモックすることは可能ですか?
1917 次
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 に答える