私はAPIに一般的なフォームを投稿できることを確認するためのテストを書いています。MockMVCを介したフォームの投稿
私はかなりのデバッグを追加しましたが、実際のフォームで投稿されたデータに気付きました。 (ポストマン/ AngularJS又はE/W)のようmockMVC試験を行うこととは異なります
MvcResult response = mockMvc
.perform(post("/some/super/secret/url") //
.param("someparam1", "somevalue") //
.param("someparam2", "somevalue") //
.contentType(MediaType.APPLICATION_FORM_URLENCODED) //
.accept(MediaType.APPLICATION_JSON)) //
.andExpect(status().isOk()) //
.andReturn();
設定を正確生産に実行コンフィギュレーション、およびそのような同じです。しかし、私の傍受者が実際のテストで(mockMVCではなく)実際のテストでは、コンテンツは "someparam1 = somevalue & etc = encore"のようにフォーマットされます。
私は実際に内容がないようですが、要求のParams、私は彼らがGETのパラメータのように追加されていると仮定します。
これを正しくテストする方法を知っている人はいますか? FormHttpMessageConverterをサーブレットコンテキストに追加しても、フォームの投稿がSpringによって解析されていないように見えるので、この問題が発生しました。
あなたが設定のように、サーバーといくつかのログの詳細に投稿する実際のデータは、それがより明確にするために、より詳細な情報を提供することはできますか?モックについては、あなたが正しいことを行っているようですが、モックテストのパラメタは、表示する投稿データの形式と同じ種類です。また、春のセキュリティのようなものがあるかどうか確認してください。次の手順を実行する前に、春のセキュリティを模擬するか、ログインを実行する必要があります。 –
私はそういうものを使用していませんが、私が知ったことは、私の例が実際に間違っていることです。この場合someParam1とsomeParam2はクエリのパラメータ(URL)になります。私は、フォームのパラメータを使用したいので、URLENCODEDです。しかし、これはモデルやバリューマップからアクセスできるように見えます。だから私たちは回避策が必要になります(これはスプリングではない@FormParamとして使用されていた完全なスプリングMVCに移行されました)。 –
また、投稿されたデータは、Mvcの部分の下の私の例のようでしたが、&and = –