Java test cases

0

I'm trying to run a test on the banking system that I've done, I'm using netbeans for this.

I need to perform test in the option to withdraw and deposit, in the case what I have done so far only the error in everything, but I did not understand why I did not type anything to carry out the test, does anyone know how to do? and if you can explain it to me.

Class Box:

import java.util.Scanner;
import java.util.Random;

public class Caixa {


public static void main(String[] args){
    // Declarando as variáveis, Scanner e Random
    String nome;
    double inicial;
    Scanner entrada = new Scanner(System.in);
    Random numero = new Random();
    int conta = 1 + numero.nextInt(9999);

    //Obtendo os dados iniciais do Cliente
    System.out.println("Cadastrando novo cliente.");
    System.out.print("Ente com seu nome: ");
    nome = entrada.nextLine();

    System.out.print("Entre com o valor inicial depositado na conta: ");
    inicial = entrada.nextDouble();
    if(inicial <= 0){
       System.out.println("Não é possível iniciar com esse valor!\n");
    }
    else
    {

    //Criando a conta de um cliente
    Conta minhaConta = new Conta(nome, conta, inicial);
    minhaConta.iniciar();
}

}
}

Class Account:

import java.util.Scanner;

public class Conta {
private String nome;
private int conta, saques;
private double saldo;
Scanner entrada = new Scanner(System.in);

public Conta(String nome, int conta, double saldo_inicial){
    this.nome=nome;
    this.conta=conta;
    saldo=saldo_inicial;
    saques=0;
}

public void extrato(){
    System.out.println("\tEXTRATO");
    System.out.println("Nome: " + this.nome);
    System.out.println("Número da conta: " + this.conta);
    System.out.printf("Saldo atual: %.2f\n",this.saldo);
    System.out.println("Saques realizados hoje: " + this.saques + "\n");

}

public void sacar(double valor){
if(valor <= 0){
  System.out.println("Não é possível sacar esse valor!\n");
}
else
{
  if(saldo >= valor){
      saldo -= valor;
      saques++;
      System.out.println("Sacado: " + valor);
      System.out.println("Novo saldo: " + saldo + "\n");
  } else {
      System.out.println("Saldo insuficiente. Faça um depósito\n");
  }
}
}

public void depositar(double valor)
{
if(valor <= 0){
  System.out.println("Não é possível depositar esse valor!\n");
}
else
{
  saldo += valor;
  System.out.println("Depositado: " + valor);
  System.out.println("Novo saldo: " + saldo + "\n");
}
}

public void iniciar(){
    int opcao;

    do{
        exibeMenu();
        opcao = entrada.nextInt();
        escolheOpcao(opcao);
    }while(opcao!=4);
}

public void exibeMenu(){

    System.out.println("\t Escolha a opção desejada");
    System.out.println("1 - Consultar Extrato");
    System.out.println("2 - Sacar");
    System.out.println("3 - Depositar");
    System.out.println("4 - Sair\n");
    System.out.print("Opção: ");

}

public void escolheOpcao(int opcao){
    double valor;

    switch( opcao ){
        case 1:    
                extrato();
                break;
        case 2: 
                if(saques<3){
                    System.out.print("Quanto deseja sacar: ");
                    valor = entrada.nextDouble();
                    sacar(valor);
                } else{
                    System.out.println("Limite de saques diários atingidos.\n");
                }
                break;

        case 3:
                System.out.print("Quanto deseja depositar: ");
                valor = entrada.nextDouble();
                depositar(valor);
                break;

        case 4: 
                System.out.println("Sistema encerrado.");
                break;

        default:
                System.out.println("Opção inválida");
    }
}
}

And here's the Class ContaTest that does the testing, here's the problem or actually something I could not do:

import org.junit.BeforeClass;
import org.junit.Test;


/**
 *
 * @author aluno
 */
public class ContaTest {

public ContaTest() {
}

@BeforeClass
public static void setUpClass() {
}

@Test
public void testSacar() {
    System.out.println("sacar");
    double valor = 0.0;
    Conta instance = null;
    instance.sacar(valor);
    //fail("The test case is a prototype.");
}


@Test
public void testDepositar() {
    System.out.println("depositar");
    double valor = 0.0;
    Conta instance = null;
    instance.depositar(valor);
    //fail("The test case is a prototype.");
}


}

AfterIclickontest,thisappears:

    
asked by anonymous 14.12.2017 / 13:14

1 answer

1
Conta instance = null;

instance.sacar(valor); /* ou instance.depositar(valor); */

You did not mention the test failure so it can not be 100% assertive, but this will certainly result in NullPointerException and your tests will fail.

Do something like Conta instance = new Conta(nome, conta, saldoInicial); and then run the serve or deposit. Ex:

@Test
public void testSacar() {
    System.out.println("sacar");
    double valor = 0.0;
    Conta instance = new Conta("Joao", 1, 1000.0);
    instance.sacar(valor);
    //fail("The test case is a prototype.");
}
    
14.12.2017 / 13:24