У меня есть Spring RestController, который выглядит примерно так:Проблема с Bean Validation при тестировании метода Spring Controller
...
import javax.validation.Valid;
...
@RestController
@RequestMapping(value = "/users", consumes = { MediaType.APPLICATION_JSON }, produces = { MediaType.APPLICATION_JSON })
public class UserController
{
@Autowired
private UserService userService;
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody User add(@RequestBody @Valid User user)
{
...
}
...
}
PS: @Valid рядом с пользователем: Здесь у меня есть проблема.
Это один из тестов для контроллера:
@ContextConfiguration(classes = { TestAppConfig.class, PersistenceConfig.class }, loader = AnnotationConfigWebContextLoader.class)
@WebAppConfiguration
public class UserControllerTest extends AbstractTestNGSpringContextTests
{
@Autowired
private UserController userController;
@Test
public void addTest()
{
User user = new User();
...
userController.add(user);
...
}
}
TestAppConfig выглядит примерно так:
@Configuration
@ComponentScan(basePackages = {Constants.BEANS_BASE_PACKAGE})
@PropertySource(value = { "classpath:application.properties" })
@EnableAspectJAutoProxy
@EnableWebMvc
class TestAppConfig extends WebMvcConfigurerAdapter
{
}
Проблема: Все, кроме @Valid
работает отлично (вызов службы). Здесь @Valid
: javax.validation.Valid
аннотация, которую я хочу использовать для простых проверок (реализация = Hibernate Bean Validator). Тем не менее, во время моих тестов я не вижу проверки. Однако это происходит, когда я вызываю вызовы службы. Что я могу пропустить?