21.12.23 TIL43


🔎 きょう習った
UserApi Controllerテストコードの作成に1日かかりました.
その中で最も苦労した部分は、既存の履歴書を修正する部分です.
これはテストで、プロファイルラベルの変更をクリックすることでニックネームとプロファイル写真を変更できます.
どのように修正してテストしても、使用できます.
「changedNickname」はよく含まれていて、最終的にbodyは以前のニックネームtestNicknameしか現れませんでした.でも写真の変更が良かったので
そして検索したブログで、MockMvcでID値を要求する場合、ID値をpart()に要求する必要があるという記事を見ました.
私はずっとparamに送られていたので@requestPartとは認識されませんでした.
当初はこの部分がmultipartの部分であることを無視し、他の方法を探していたが、これは失敗したようだ.
次のように変更した後、テストに成功しました.
  @Test
    @DisplayName("프로필 설정")
    @WithUserDetails(value = "testId")
    @Order(4)
    public void updateProfile() throws Exception {
                MockMultipartFile image = new MockMultipartFile("profileImgUrl", "image.jpeg", "image/jpeg", "<<jpeg data>>".getBytes());
        mockMvc.perform(multipart("/user")
                        .file(image).part(new MockPart("nickname", "changedNickname".getBytes(StandardCharsets.UTF_8))))

                .andExpect(status().isOk())
                .andDo(print());
    }
❗¥
  • のいろいろな試みを経て、成功したときは本当に嬉しかったです.
  • でもこの過程は大変で大変でした.
  • の最も基本的な部分を逃したら、解決策を見つけるのは難しい.
  • また検索する時ももっと注意しなければなりません.ソリューションの手がかりを見つけたブログ.
    検索初期に見つけたようですが、渡したようです.
  • ✔¥参考
    https://gaemi606.tistory.com/entry/JUnit5-multipartformdata-%EC%A0%84%EC%86%A1-%ED%85%8C%EC%8A%A4%ED%8A%B8-MockMultipartFile