Spring boot 如何测试具有身份验证对象作为参数的spring引导服务方法?

Spring boot 如何测试具有身份验证对象作为参数的spring引导服务方法?,spring-boot,kotlin,junit,mockito,keycloak,Spring Boot,Kotlin,Junit,Mockito,Keycloak,我正在Kotlin中构建一个Spring引导端点,我需要为此创建测试。我可以为我的控制器类创建一个测试,如下所示: import org.springframework.security.core.Authentication @RestController @RequestMapping("/servicos/solicitacoes") class SolicitacaoController { @Autowired private lateinit var solic

我正在Kotlin中构建一个Spring引导端点,我需要为此创建测试。我可以为我的控制器类创建一个测试,如下所示:

import org.springframework.security.core.Authentication

@RestController
@RequestMapping("/servicos/solicitacoes")
class SolicitacaoController {


    @Autowired
    private lateinit var solicitacaoService: SolicitacaoService

    @PostMapping(consumes = [MediaType.APPLICATION_JSON_VALUE])
    fun post(@RequestBody solicitacaoDTO: SolicitacaoDataClassDTO, @ApiIgnore authentication: Authentication): Solicitacao {
        return solicitacaoService.addSolicitacao(solicitacaoDTO, authentication)
    }
}
然而,由于我的服务类有一个身份验证参数,我不知道如何为我的服务类创建一个测试

这是我的服务课:

@Service
class SolicitacaoService {
    @Autowired
    private lateinit var solicitacaoRepository: SolicitacaoRepository

    @Autowired
    private lateinit var acessoSistema: AcessoSistema

    fun addSolicitacao(solicitacaoDTO: SolicitacaoDataClassDTO, authentication: Authentication): Solicitacao{
        val idInstitucional = acessoSistema.getIdInstitucional(authentication)
        // Some Businnes logic
        return solicitacaoRepository.save(solicitacao)
    }
}
身份验证过程由一个keydove令牌完成,前端需要该令牌才能访问后端服务

我可以测试我的控制器,因为在post请求中,我在请求头中发送令牌。但是,为了在我的服务中测试方法AddAcao,我需要创建一个身份验证对象

你知道如何为我的客户服务创建一个测试吗? 我正在使用JUnit和Mockito。我想在我的律师服务考试中嘲笑我的律师职位。但是,我不知道如何使用KeyClope服务器的参数创建对象身份验证

这是我的律师服务测试:

@RunWith(SpringRunner::class)
//@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class SolicitacaoServiceTest {

    @Autowired
    private lateinit var solicitacaoService: SolicitacaoService

    @MockBean
    private lateinit var solicitacaoRepository: SolicitacaoRepository

    @Test
    fun quandoAdicionarSolicitacaoComUsuarioComum_entaoSolicitacaoDeveSerRetornada(){


    }


}