Spring boot 如何测试具有身份验证对象作为参数的spring引导服务方法?
我正在Kotlin中构建一个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
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(){
}
}