【发布时间】:2018-06-10 17:00:12
【问题描述】:
我正在尝试在我的单元测试中使用.andExpect(model().attributeHasFieldErrors。
根据this pagejava.lang.AssertionError: No BindingResult for attribute: abc 是因为被测控制器返回的视图是重定向:“redirect:/xyz/add”。
但与此同时,大多数@PostMapping(/...) 使用重定向。这是否意味着在这种情况下无法知道attributeHasFieldErrors?
这似乎是可能的 - 在这个 sample 它似乎正在工作 - 但我对此感到困惑:
testProcessUpdateOwnerFormHasErrors 测试方法(上面链接底部的第二个方法)执行 POST [ i.e. mockMvc.perform(post(... ],并期望控制器类中的 GET 方法返回的视图名称。
也就是说,@GetMapping("/owners/{ownerId}/edit") 在 Controller 中返回 "owners/createOrUpdateOwnerForm",@PostMapping("/owners/{ownerId}/edit") 返回 "redirect:/owners/{ownerId}"。以上执行 POST 的测试需要 "owners/createOrUpdateOwnerForm"。它不应该期待"redirect:/owners/{ownerId}" 吗?
我很困惑。
有人可以解释实现attributeHasFieldErrors 的正确方法吗?
【问题讨论】:
标签: junit spring-test spring-boot-test