Skip to content

Instantly share code, notes, and snippets.

@joaovictorino
Last active January 19, 2024 02:14
Show Gist options
  • Save joaovictorino/15b963d6f1ba13d4d846049f7e551e8f to your computer and use it in GitHub Desktop.
Save joaovictorino/15b963d6f1ba13d4d846049f7e551e8f to your computer and use it in GitHub Desktop.
Refatorando saque e depósito

Refatorando saque e depósito

Temos um trecho de código na classe conta que pode ser melhorado, ou seja refatorado, tornando o código mais fácil de manter e mantendo o mesmo comportamento. Crie o método abaixo dentro da classe conta

private validarValor(valor: number): void {
  if(valor <= 0)
    throw new NegocioErro("valor não pode ser igual ou menor que zero");
}

E altere os métodos de saque e depósito conforme abaixo

public sacar(valor: number): void {
  this.validarValor(valor);

  this._saldo -= valor;
}

public depositar(valor: number): void {
  this.validarValor(valor);

  this._saldo += valor;
}

Agora rode os testes para garantir que não mudamos o comportamento do código.

npx jest

Perceba a importância e liberdade que os testes automatizados nos trazem, podemos alterar/refatorar a aplicação com a garantia que nada foi impactado.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment