【JUnit】trailing white space will be removedの原因は何?Json

“trailing white space will be removed”という警告は、JUnitのテストケース内で、content().json(“””を使用している際に発生することが多いです

例に挙げると、以下のようなJUnitを実装したら発生することがあります

コントローラクラスのテストになります

mockMvc.perform(get("/api/data"))
               .andExpect(status().isOk())
               .andExpect(content().contentType(MediaType.APPLICATION_JSON))
               .andExpect(content().json("""
                  {
                     "key": "value"
                  }""")

ダブルクォーテーション(またはシングルクォーテーション)が3つ並ぶ行の始まりや終わりに空白文字(スペース)があると、その空白も文字列に含まれることになります

content().json("""
   {
      "key": "value"
   }
""")

上記の例では、”””の前後にスペースがあります。このスペースも文字列に含まれ、JSONの構文エラーの原因となります

こういうのもエラーになることがあります

content().json("""
   {
      "key": "value"
   }""")

この問題を解決するためには、ダブルクォーテーションの前後にスペースがないように注意してください。例えば、次のように書き換えることで警告を取り除くことができます

content().json("""
{
   "key": "value"
}
""")

もしくは以下のように一行で表現することもできます

content().json("""{"key": "value"}""")

解決できましたか?


是非フォローしてください

最新の情報をお伝えします