Spring Test(JUnit)を使用してControllerのテストを行いたいと考えています。
Controllerのメソッドの引数であるFormに設定しているバリデータのエラーメッセージ(プロパティで定義したもの)が定義したものであることを確認したいのですが、テストの戻り値から取得できるのは定義前のメッセージだけで、定義したものが取得できません。
どのようにすれば、バリデーションに対して定義したエラーメッセージを取得することができるでしょうか。
■ValidationMessages.properties
Java
1// JUnitでの実行の結果、ここで定義したメッセージを取得したい。 2javax.validation.constraints.NotNull.message=未入力です。
■Form
Java
1public class Form { 2 @NotNull 3 public String input; 4 // 以降 略 5}
■Controller
Java
1public class Controller { 2 @RequestMapping(path = "home", method = RequestMethod.POST) 3 public String index(@Validated Form form, 4 BindingResult result, Model model) { 5 if (result.hasErrors()) { 6 return "test/test"; 7 } 8 // 略 9 } 10}
■JUnitコード
Java
1@Before 2public void setup() { 3 // 略 4} 5 6@Test 7public void testRegisterConfirm01() throws Exception { 8 9 // ResultActionsからBindingResultを取得して 10 // DefaultMessageを参照しても、プロパティで定義したメッセージではなく、 11 // 定義前のメッセージが設定されている。 12 ResultActions results = mockMvc.perform(post("/home") 13 .param("input", ""); 14 15 }
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー