Spring Boot junit 测试安全应用程序
Posted
技术标签:
【中文标题】Spring Boot junit 测试安全应用程序【英文标题】:Spring Boot junit testing secured application 【发布时间】:2018-07-22 00:29:19 【问题描述】:我在我的应用程序中使用 Spring Security OAuth2。当我尝试使用 JUnit 测试来测试服务层时,我收到了这个错误:
org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: 在 SecurityContext 中找不到 Authentication 对象
你能告诉我如何解决它吗?
这是我的测试类:
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class FooServiceTest
@Autowired
private FooService service;
@Test
public void someTest()
service.findFoo(1L);
【问题讨论】:
检查baeldung.com/oauth-api-testing-with-spring-mvc 【参考方案1】:使用@WithMockUser
@WithMockUser(username = "usertest", password = "password", roles = "USER")
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class FooServiceTest
@Autowired
private FooService service;
@Test
public void someTest()
service.findFoo(1L);
【讨论】:
以上是关于Spring Boot junit 测试安全应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot:使用 Junit 模拟具有安全上下文的用户身份验证
为啥在 Spring Boot 应用程序的 Junit 测试中应用程序属性中的属性不可用?
如何 JUnit 测试 Spring-Boot 的 Application.java