otaldoLOCK / ProjetoMVC_Projeto

Projeto Teste no padrão MVC - Com MER, diagrama de classes e diagrama de caso de uso
0 stars 0 forks source link

Teste Cliente.java acerto e erro #2

Open Popolinos opened 3 months ago

Popolinos commented 3 months ago

A classe Cliente.java possui funções para gerar um novo cliente. Essas funções foram testadas individualmente para verificar se suportariam os testes feitos nela.

Popolinos commented 3 months ago

Teste que deu certo: Introduzimos na função, valores que já eram esperados pela mesma. Ou seja, valores que sabíamos que daria certo.

Código do teste no JUnit no IDE Intellij: package Model;

import org.junit.jupiter.api.Test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;

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

class ClienteTestCerto {

@Test
void getIdCliente() {
    Cliente cliente = new Cliente();
    cliente.setIdCliente(1);
    assertEquals(1, cliente.getIdCliente());
}

@Test
void setIdCliente() {
    Cliente cliente = new Cliente();
    cliente.setIdCliente(1);
    assertEquals(1, cliente.getIdCliente());
}

@Test
void getIdade() throws ParseException {
    Cliente cliente = new Cliente();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date dataNascimento = sdf.parse("1990-06-04");
    cliente.setData(dataNascimento);
    assertEquals(34, cliente.getIdade());
}

@Test
void setData() throws ParseException {
    Cliente cliente = new Cliente();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date dataNascimento = sdf.parse("1990-06-04");
    cliente.setData(dataNascimento);
    assertEquals(dataNascimento, cliente.getData());
}

@Test
void getData() throws ParseException {
    Cliente cliente = new Cliente();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date dataNascimento = sdf.parse("1990-06-04");
    cliente.setData(dataNascimento);
    assertEquals(dataNascimento, cliente.getData());
}

@Test
void setNome() {
    Cliente cliente = new Cliente();
    cliente.setNome("João");
    assertEquals("João", cliente.getNome());
}

@Test
void getNome() {
    Cliente cliente = new Cliente();
    cliente.setNome("João");
    assertEquals("João", cliente.getNome());
}

@Test
void testToString() {
    Cliente cliente = new Cliente();
    cliente.setIdCliente(1);
    cliente.setNome("João");
    assertEquals("1 - João", cliente.toString());
}

}

Popolinos commented 3 months ago

Teste que deu errado: Introduzimos na classe valores que estavam fora do escopo da função, como por exemplo o ID do cliente, que não deveria aceitar valores negativos, mas que ao testarmos a classe a mesma não apresentou contramedidas ao input errado.

Código do teste no JUnit no IDE Intellij:

package Model;

import org.junit.jupiter.api.Test;

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

class ClienteTestErrado { //A função cliente buga se a informação for diferente de um numero, deveria ter uma contra medida para evitar o erro @Test void setIdClienteComValorNegativo() { Cliente cliente = new Cliente(); assertThrows(IllegalArgumentException.class, () -> { cliente.setIdCliente(-1); }); }

@Test
void setIdadeComDataNula() {
    Cliente cliente = new Cliente();
    assertThrows(NullPointerException.class, cliente::getIdade);
}

@Test
void setDataComDataNula() {
    Cliente cliente = new Cliente();
    assertThrows(NullPointerException.class, () -> {
        cliente.setData(null);
    });
}

@Test
void setNomeComNomeNulo() {
    Cliente cliente = new Cliente();
    assertThrows(NullPointerException.class, () -> {
        cliente.setNome(null);
    });
}

@Test
void testToStringComIdClienteNaoDefinido() {
    Cliente cliente = new Cliente();
    cliente.setNome("João");
    assertNull(cliente.getIdCliente());
    assertThrows(NullPointerException.class, cliente::toString);
}

}