[RESOLVIDO] Teste Unitário - Java

Como posso arrumar este teste unitário?

@Test
public float obterSaldo() {
  return saldo;
  System.out.println("saldo obtido");
  float valor = 20.0F;
  banco.sacar(valor);
  assertEquals(banco.saldo, 0, 0);   
}

Esse return está errado, pois ele invalida o resto do método do jeito que está. O que vc está tentando testar?

Eu queria fazer um teste “obter o saldo da conta”, mas não sei como fazer, ai tentei realizar dessa forma

Tira esse return do teste (ele não faz sentido) e veja se funciona.

Posta o código da classe referente ao banco pra gente ver.

Esse é todo ele completo, com alguns testes:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package banco;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author lilil
 */
public class ContaCorrenteTest {
    
    ContaCorrente banco;
    
    public ContaCorrenteTest() {
    }
    
    @BeforeClass
    public static void setUpClass() {
    }
    
    @AfterClass
    public static void tearDownClass() {
    }
    
    @Before
    public void setUp() {
        banco = new ContaCorrente(10,"Banco Brasil", "Maria");
        banco.saldo = 0;
    }
    
    @After
    public void tearDown() {
    }

    /**
     * Test of deposito method, of class ContaCorrente.
     */
    @Test
    public void testDeposito() {
        System.out.println("deposito");
        float valor = 30.0F;
        banco.deposito(valor);
        assertEquals(banco.saldo, 30, 0);
    }

    /**
     * Test of sacar method, of class ContaCorrente.
     */
    @Test
    public void testSacar() {
        System.out.println("sacar");
        float valor = 10.0F;
        banco.sacar(valor);
        assertEquals(banco.saldo, 0, 0);
    }

   /**
     * Test of obter method, of class ContaCorrente.
     */
 @Test
 public float obterSaldo(){
 return saldo;
 System.out.println("saldo obtido");
 float valor = 20.0F;
 banco.obterSaldo(valor);
 assertEquals(obterSaldo, 0, 0);   
}

Vc tentou sem o return?

Eu fiz no Online C Compiler e apareceu:

Compilation failed due to following error(s).

Quando é assim, normalmente, é dito quais os motivos do erro.

O que é esse Online C Compiler?

Um site online para testar esses códigos. Tentei no Java Compiler (https://www.jdoodle.com/online-java-compiler/)

public float obterSaldo(){
return saldo;
System.out.println(“saldo obtido”);
float valor = 20.0F;
banco.obterSaldo(valor);
assertEquals(obterSaldo, 0, 0);
}

Apareceu: No “public class” found to execute

Vc tirou o return do método de teste qdo executou?

Sim, mesmo erro

Se vc executar o teste assim:

@Test
public float obterSaldo(){
  System.out.println(“saldo obtido”);
  float valor = 20.0F;
  banco.obterSaldo(valor);
  assertEquals(obterSaldo, 0, 0);
}

funciona?

Ainda não, aparece o mesmo problema. Mas tudo bem, agradeço muito a sua ajuda e esforço para tentar me auxiliar nesses exercício. Vou ver como posso faze-lo com os professores!

Na real, resolvê-lo está muito fácil. Só precisamos entender melhor como vc está fazendo. Usando essa ferramenta online pode ser o que está complicando pra mim.

Entendi, mas tem como me dar uma demonstração de como seria fora do compilador online?

@Julia_23 no caso voce tirou o “return”, mas esqueceu de mudar o tipo da função.

Tenta deixar ele como void e roda novamente.

    @Test
    public void obterSaldo(){
      System.out.println(“saldo obtido”);
      float valor = 20.0F;
      banco.obterSaldo(valor);
      assertEquals(obterSaldo, 0, 0);
    }
2 curtidas

Na verdade, não ta compilando pq vc esqueceu de criar uma variavel float “obterSaldo” para receber o retorno do “banco.obterSaldo(valor)”.

Na hora de testa, voce esqueceu de colocar o valor esperado para comparar com o retorno, no trecho “assertEquals(obterSaldo, 0, 0)

Segue um exemplo:

@Test
public float obterSaldo(){
  System.out.println(“saldo obtido”);
  float valor = 20.0F;
  float obterSaldo = banco.obterSaldo(valor);
  assertEquals(valor ,obterSaldo);
}
2 curtidas

Olá, Rodrigo!

Agora funcionou aqui, entendi o que estava de errado. Obrigada pela ajuda!

1 curtida

Que bom !!

Boa sorte nos seus estudos !

2 curtidas