+1 امتیاز
قبل در برنامه نویسی توسط (426 امتیاز)
ویرایش شده قبل توسط

برای تست کردن Validation ها در SpringMVC باید چه کرد

از این بابت که ماژولش لود نمیشه؟

 

@RequestMapping(
    value = "/createUser",
    method = RequestMethod.POST
  )
public String createUser(
    @Valid @ModelAttribute("user") User user,
    BindingResult result
  ) {
    if (result.hasErrors()) {
      return "createUser";
    }
    ......
    ......
}


حالا اگر یک Constraint از Property های User رو رعایت نکنیم که باعث ValidationException بشه و این Exception درBindingResult خودشو نشون میده چطور باید اونو تست کنیم؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

شما بالاخره باید دلایل خطاهای validation رو در ui نمایش بدی، برای این کار می نونی errors هارو به view بفرستی (با استفاده از model) و بعدش اونارو نمایش بدی. در اینصورت براحتی می تونی با متد های MockMvcResultMatchers تست کنی که فلان پیغام خطا درست در صفحه نمایش داده شده:

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class ApplicationTest {

    @Autowired
    private MockMvc mockMvc;

    @Test
    public void shouldReturnDefaultMessage() throws Exception {
        this.mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk())
                .andExpect(content().string(containsString("some error text")));
    }
}

سوالات مشابه

0 امتیاز
1 پاسخ 464 بازدید
+1 امتیاز
1 پاسخ 277 بازدید
0 امتیاز
2 پاسخ 9.2هزار بازدید
+1 امتیاز
1 پاسخ 597 بازدید
+1 امتیاز
1 پاسخ 303 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 190 بازدید
+1 امتیاز
2 پاسخ 690 بازدید
+1 امتیاز
1 پاسخ 4.9هزار بازدید
...