新しい Java 11 を使用するコードをテストしようとしていますjava.net.http.HttpClient。
私のプロダクションコードには、次のようなものがあります。
HttpClient httpClient = ... (gets injected)
HttpRequest request = HttpRequest.newBuilder().uri(URI.create("http://localhost:1234"))
.POST(HttpRequest.BodyPublishers.ofByteArray("example".getBytes()))
.build();
return httpClient.send(request, HttpResponse.BodyHandlers.ofByteArray());
そして、私のテストでは、 をモックしてHttpClientを取得しjava.net.http.HttpRequestます。リクエストボディ (= my ) を取得/テストするにはどうすればよい"example"ですか? 電話request.bodyPublisher()して を取得できますHttpRequest.BodyPublisherが、行き詰まります。
- キャストしようとしましたが
jdk.internal.net.http.RequestPublishers.ByteArrayPublisher(実際にはそうです)、対応するパッケージがモジュールによってエクスポートされていないため、コンパイルされません。 HttpRequest.BodyPublisher-interface (.contentLength(), )で使用可能なメソッドを確認しましたが、.subscribe(subscriber)それらでは不可能だと思います。- 新しいものを作成し
BodyPublisherて を使用して比較しようとしまし.equals()たが、実際の実装がないため、比較は常に false でした。