4
respostas

[Dúvida] Testes unitarios Em Controller Com UUID

a dúvida que eu tenho é a seguinte, estou usando o id do tipo UUID, para gerar um id aleatório , ao fazer os testes unitários, não consigo fazer o put ou getId, pelo motivo que ele gera automaticamente e não consigo salvar um id especifico, estou pensando em ter dois ids na entidade um para gerar automatico outro nao, pois sempre que tento salvar um id especifico ele gera outra ai nao consigo fazer o put. segue codigo. alguem pode ajudar?

SpringBootTest @AutoConfigureMockMvc @TestInstance(TestInstance.Lifecycle.PER_CLASS) class VideosControllerTest {

@Autowired
private MockMvc mockMvc;


@MockBean
private VideoCadastroDto videoCadastroDto;

private final UUID repeatId = UUID.fromString("3fa85f64-5717-4562-b3fc-2c963f66afa6");

@MockBean
private Categorias categorias;
@MockBean
private Videos videos;
private UUID uuid = UUID.randomUUID();
private final UUID notFoundId = UUID.fromString("0fa00f00-0000-0000-b0fc-0c000f00afa0");
@Autowired
private VideosRepository videosRepository;
@Autowired
private CategoriasRepository categoriasRepository;
private final URI uri = URI.create("/videos");
private final URI uriWithId = URI.create("/videos/");
private final URI uriNotFound = URI.create("/videos/"+notFoundId);


@Autowired
private ObjectMapper objectMapper;

@BeforeAll
public void setUpAll() {

    videos = new Videos(repeatId,"aa","aa","aa");
    videos.setId(repeatId);
    videosRepository.save(videos);

    categorias = new Categorias("teste", "teste");
    categoriasRepository.save(categorias);

}



@BeforeEach
public void setup() {
    videoCadastroDto = new VideoCadastroDto("aaa", "aa", "aa", categorias.getId());
}

@Test
public void shouldReturn201WhenPosting() throws Exception {


    mockMvc.perform(MockMvcRequestBuilders.post(uri)
                    .content(objectMapper.writeValueAsString(videoCadastroDto))
                    .contentType(MediaType.APPLICATION_JSON))
            .andDo(MockMvcResultHandlers.log())
            .andExpect(MockMvcResultMatchers.status().isCreated());

}

@Test
public void shouldReturn201WhenPutting() throws Exception {



    mockMvc.perform(MockMvcRequestBuilders.put(uriWithId+repeatId.toString())
                    .content(objectMapper.writeValueAsString(videoCadastroDto))
                    .contentType(MediaType.APPLICATION_JSON))
            .andDo(MockMvcResultHandlers.log())
            .andExpect(MockMvcResultMatchers.status().isOk());

}
4 respostas

Oi Rodrigo!

Vai depender de como o UUID está sendo gerado no seu projeto e a classe em que ele é gerado.

ele esta na strategy, talvez eu deva fazer manual certo? bem no metodo salvar mesmo, vou tentar assim Insira aqui a descrição dessa imagem para ajudar na acessibilidade

hum, coloca manual mesmo :D

coloquei assim, mas nos testes ainda nao funciona

Insira aqui a descrição dessa imagem para ajudar na acessibilidade vou te mandar o link do repositorio

https://github.com/RodrigoPinheiro1/AluraFlixChallenge

mas o id ainda não funciona,

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software