1
resposta

[Dúvida] Não consigo importar a classe Email para realizar o teste

 ls -R
.:
br  escola

./br:
com

./br/com:
alura

./br/com/alura:
Main.java

./escola:
Aluno.java  CPF.java  Email.java  pom.xml  src  target

./escola/src:
main  test

./escola/src/main:
java  resources

./escola/src/main/java:
br

./escola/src/main/java/br:
com

./escola/src/main/java/br/com:
alura

./escola/src/main/java/br/com/alura:

./escola/src/main/resources:

./escola/src/test:
java

./escola/src/test/java:
br  escola

./escola/src/test/java/br:
com

./escola/src/test/java/br/com:
alura

./escola/src/test/java/br/com/alura:
escola

./escola/src/test/java/br/com/alura/escola:

./escola/src/test/java/escola:
EmailTest.java

./escola/target:
classes  test-classes

./escola/target/classes:
br

./escola/target/classes/br:
com

./escola/target/classes/br/com:
alura

./escola/target/classes/br/com/alura:

./escola/target/test-classes:
br  escola

./escola/target/test-classes/br:
com

./escola/target/test-classes/br/com:
alura

./escola/target/test-classes/br/com/alura:
escola

./escola/target/test-classes/br/com/alura/escola:

./escola/target/test-classes/escola:
EmailTest.class

Minha classe de teste

package escola;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

public class EmailTest {
    
    @Test
    void testInvalidEmail(){
        assertThrows(IllegalArgumentException.class, ()-> new Email(null));
    }
}
1 resposta

Olá, Valdinei! Tudo bem?

Isso pode estar acontecendo porque a classe Email está em um pacote diferente do seu teste.

No seu caso, a classe Email está no pacote 'escola', e o seu teste está também no pacote 'escola'. No entanto, pela estrutura que você mostrou, parece que a classe Email está no diretório 'escola' na raiz do projeto, enquanto o teste está no diretório 'escola' que está dentro de 'src/test/java'. Esses são, na verdade, pacotes diferentes.

Uma solução seria mover a classe Email para o mesmo pacote do teste. Para isso, você deveria mover o arquivo Email.java para o diretório 'src/main/java/escola'. A estrutura ficaria assim:

./escola/src/main/java/escola:
Email.java

E a classe Email ficaria assim:

package escola;

public class Email {
    // código da classe
}

E a classe de teste ficaria assim:

package escola;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

public class EmailTest {
    
    @Test
    void testInvalidEmail(){
        assertThrows(IllegalArgumentException.class, ()-> new Email(null));
    }
}

Dessa forma, a classe de teste deveria conseguir importar a classe Email sem problemas, pois agora elas estão no mesmo pacote.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.