問題タブ [play-ws]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1589 参照

scala - scalamock を使用して WSRequest.post() をモックできない

Scalamock と Scalatest を使用して Play アプリケーションの単体テストを作成しています。

私の元のコードは次のようになります。

一部では、scalamock を使用して実行しようとしている Web サービスへの外部呼び出しをモックする必要があります。

ファイルを使用して投稿リクエストをモックすることはできますが、JSON を使用して投稿リクエストをモックすることはできません。

次のように、スタブ関数参照を個別に配置してみました。

2 行目のコンパイル エラーが発生します。Unable to resolve overloaded method post

ここで何が欠けていますか?1 つのオーバーロードされたメソッドをモックできないのに、もう 1 つのメソッドをモックできないのはなぜですか?

0 投票する
0 に答える
140 参照

scala - Play スタンドアロン WS クライアントは、コアの Play フレームワーク jar をインポートしないとマルチパート ファイルをアップロードできません。

play-ws-standaloneplay-ws-standalone バージョン 2.1.2 を使用する

Play スタンドアロン ws クライアントを使用して、Scala プロジェクトでレスト コールを作成しています。私が問題を抱えているコードベースの特定の部分では、コアのプレイ フレームワーク jar をインポートしません (どちらも望んでいません。スタンドアロンの ws クライアントはそれを必要としないはずです)。

私が問題を抱えているのは、マルチパート ファイルを使用してポスト リクエストを送信することです。exampleによると、コア Play フレームワーク jar にある play.api.mvc.MultipartFormData.FilePart[Source[ByteString, Any]] を使用する必要があります (ws クライアントに関連する他のすべてのクラスとは異なります。 play-ws-standalone jar)。

DefaultBodyWritables は、単一の File: DefaultBodyWritables.writableOf_File をアップロードするための BodyWritable 実装のみを提供するため、私の目的には合いません。

multipart/form-data メディア タイプに独自の BodyWritable を実装できることは理解していますが、それを機能させる方法がわかりません。Play フレームワークでの MultiPartFormData の実装は非常に複雑です。これに関するヒントは役に立ちます。

TLDR;

FilePart を Play フレームワークから分離できない理由はありますか? play-ws-standalone を使用して multipart/form-data をアップロードするために、このモジュールにフレームワーク全体をインポートすることを回避する回避策はありますか (これは避けたいと思います)。