1
resposta

Erro ao executar o teste com H2: Unsatisfied dependency - OAuth 2.0

Olá Rodrigo!

Estou incrementando um projeto de micosserviço (resultado de diversos cursos que fiz aqui) incluindo os testes unitários com banco em memória H2.

O microsserviço utiliza um outro microsserviço de autenticação OAuth 2 que está funcionando corretamente - tantou a autenticação quanto a autorização (testes via Postman).

No entanto, ao executar um teste unitário do microsserviço, ocorre o erro abaixo:

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfiguration': 
Unsatisfied dependency expressed through method 'setAuthenticationConfiguration' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.security.config.annotation.authentication.configuration.
AuthenticationConfiguration' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.security.config.annotation.authentication.configuration.
AuthenticationConfiguration' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

Abaixo, minha classe de teste:

@RunWith(SpringRunner.class)
@DataJpaTest
@ActiveProfiles("test")
public class SectorRepositoryTest {
    @Autowired
    private SectorRepository repository;

    @Test
    public void findASectorByNameTest() {
        Sector sector = repository.findByName("Consumo cíclicos");
        Assert.notNull(sector, "This sector should not be null");
    }
}

Detalhe: assim como no ínício desse curso, eu também evoluí a versão dos meus microsserviços, só que já fui para a versão 2.3.8.RELEASE.

Obrigado!

1 resposta

Oi Bruno,

A princípio no teste vai precisar carregar o contexto de segurança, se não acontece a exception.

Troque a anotação @DataJpaTest pela @SpringBootTest e veja se resolve.