【发布时间】:2016-11-28 07:34:25
【问题描述】:
我正在使用@WithMockUser 在一个简单的 Spring Boot Web 服务中测试使用基本身份验证保护的控制器方法。我的注释看起来像:
@WithMockUser(username = 'admin', password = 'mypassword', roles = ['ADMIN'])
然而,似乎用户名和密码字段被忽略了。即使我指定了错误的用户名或密码,测试也会通过。但是,角色字段似乎已被使用,并且测试失败并提供了无效角色。
也许我误解了这个注释的作用,但我应该能够使用它来验证提供给安全方法的不正确凭据的行为吗?
谢谢!
--约翰
【问题讨论】:
-
不,你不应该。它的作用是用给定的用户重新填充
SecurityContext。它不允许您测试任何其他内容。如果需要,您需要使用 Springs Mock MVC 测试支持进行系统测试或完整集成测试,包括手动注册您的安全配置。
标签: spring-mvc spring-security spring-boot spring-test-mvc