Spring Boot junit测试安全应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot junit测试安全应用程序相关的知识,希望对你有一定的参考价值。

我在我的应用程序Spring Security OAuth2中使用。当我尝试使用JUnit测试测试服务层时,我收到此错误:

org.springframework.security.authentication.AuthenticationCredentialsNotFoundException:在SecurityContext中找不到Authentication对象

你能告诉我怎么解决吗?

这是我的Test类:

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class FooServiceTest {

    @Autowired
    private FooService service;

    @Test
    public void someTest() {    
        service.findFoo(1L);
    }
}
答案

使用@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 模拟具有安全上下文的用户身份验证

如何 JUnit 测试 Spring-Boot 的 Application.java

JUnit 测试 MongoDB Spring Boot

Spring Boot单元测试JUnit

Spring Boot单元测试JUnit

使用 JUnit5+Spring Security 测试 Spring Boot 控制器