7
respostas

[Dúvida] Test MedicoRepositoryTest

Fala, boa noite.

Fazendo os testes me deparei com esse erro na campo crm, terei como dar um help? Estranho é q o campo esta com tamanho certo e eu nao ultrapassei esse tamanho: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

aqui esta o cod:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

mandar aqui as migrations so por desencargo Insira aqui a descrição dessa imagem para ajudar na acessibilidade

7 respostas

Oi Márcio!

Não era para ter dado erro mesmo :D

Manda aqui o código da sua classe Medico

package med.voll.api.domain.medico;

import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import med.voll.api.domain.endereco.Endereco;

@Table(name="medicos")
@Entity(name="Medico")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
public class Medico {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String nome;
    private String email;
    private String crm;
    private String telefone;
    @Enumerated(EnumType.STRING)
    private Especialidade especialidade;
    @Embedded
    private Endereco endereco;
    private Boolean ativo;

    public Medico(DadosCadastroMedicos dados) {
        this.nome= dados.nome();
        this.email= dados.email();
        this.crm= dados.crm();
        this.telefone =dados.telefone();
        this.especialidade = dados.especialidade();
        this.endereco= new Endereco(dados.endereco());
        this.ativo = true;
    }

    public void atulizarInformacoes(DadosAtualizacaoMedicos dados) {
      if (dados.nome() != null) {
          this.nome = dados.nome();
      }
      if (dados.telefone() != null){
          this.telefone = dados.telefone();
      }
      if(dados.endereco() != null){
          this.endereco.atualizarInformacoes(dados.endereco());
      }
    }

    public void excluir() {
        this.ativo = false;
    }
}

Achei estranho tb Rodrigo, inclusive nao sei por que cargas d'agua o intellj nao ta reconhecendo a anotacao @WithMockUser , tentei ate jogar a biblioteca direto para importar e nada, nem o chatGPT ajudou nessa ( se bem q esse cara erra muito, ja me disseram no trabolho q é pq eu uso a vsersa free xD ) Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Manda também seu record DadosCadastroMedico. Quanto ao erro do @WithMockUser, pode ser que no seu projeto esteja faltando a dependência de teste do Spring Security:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-test</artifactId>
    <scope>test</scope>
</dependency>
package med.voll.api.domain.medico;

import jakarta.validation.Valid;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import med.voll.api.domain.endereco.DadosEndereco;

public record DadosCadastroMedicos(
        @NotBlank(message = "Nome é obrigatório")
        String nome,
        @NotBlank(message = "Email é obrigatório")
        @Email(message = "Formato do email é inválido")
        String email,
        @NotBlank(message = "CRM é obrigatório")
        @Pattern(regexp = "\\d{4,6}",message = "Formato do CRM é inválido")
        String crm,
        @NotBlank(message = "Telefone é obrigatório")
        String telefone,
        @NotNull(message = "Especialidade é obrigatória")
        Especialidade especialidade,
        @NotNull(message = "Dados do endereço são obrigatórios")
        @Valid
        DadosEndereco endereco) {

}

qto a dependencia ta la tb rsrsrs estav ate dobrado , ainda pensando na versao do spring q coloquei no projeto

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

Bom, então está tudo certo e pode ser problema do projeto não estar sendo atualizado automaticamente com as mudanças.

Pare o projeto e de um refresh nas dependências do Maven:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E verifica nas configurações do IntelliJ se a opção Build project automatically está marcada:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade