Vinicius Quaiato

{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}

TDD - Test-driven Development + c# - parte III


Vamos lá galera, vamos continuar nossa série sobre TDD + C#.Para conferir os outros posts da série:Parte I - http://viniciusquaiato.com/blog/tdd-test-driven-development-c/Parte II - http://viniciusquaiato.com/blog/tdd-test-driven-development-c-parte-ii/Neste artigo abordaremos depósitos.A primeira coisa que precisamos fazer para realizar nosso depósito é escrever um teste:

[TestMethod]
public void Deve_Realizar_Deposito(){
var conta = new ContaBancaria(10);
    conta.Depositar(10);
    }

Este método ainda nem compila, afinal precisamos implementar o método Depositar na classe ContaBancaria.E o resultado deve ser este (lembrando que fazemos o mínimo para o programa compilar e rodarmos o teste):

public void Depositar(decimal valorDoDeposito){

Agora vamos executar todos os nossos testes. É importante executarmos todos os testes para garantir que tudo funciona:TDD Realizando testesPercebam também a importância de um nome descritivo para os testes. Desta forma podemos saber exatamente o que está sendo garantido com aquele teste.Agora conseguimos um verde, afinal nosso teste apenas garante um depósito. Vamos prosseguir criando um teste para verificar se o valor depositado foi somado ao saldo:

[TestMethod]
public void Deve_Realizar_Deposito_de_5_Em_Conta_Com_Saldo_10_E_Saldo_Deve_Ficar_15(){
var conta = new ContaBancaria(10);
    conta.Depositar(5);
    Assert.AreEqual(15, conta.SaldoAtual);
    }

E ao rodarmos nossos testes temos:TDD realizando tetses obtendo erroO erro é bem claro: diz que estávamos esperando 15 e o resultado foi 10. Isso por que nosso método de depósito não possui nenhuma implementação.Agora vamos alterar o código para que consigamos um verde nos testes:

public void Depositar(decimal valorDoDeposito){    this.SaldoAtual = 15;
    }

E executando nossos testes:TDD obtendo um verde nos testesAgora que conseguimos um verde, devemos escrever mais testes para garantir que tudo funciona:

[TestMethod]
public void Deve_Realizar_Deposito_de_10_Em_Conta_Com_Saldo_10_E_Saldo_Deve_Ficar_20(){
var conta = new ContaBancaria(10);
    conta.Depositar(10);
    Assert.AreEqual(20, conta.SaldoAtual);
    }

E rodando nossos testes temos:TDD obtendo erro em segundo testeIsso mostra que o código que escrevemos para o teste anterior passar deve ser alterado para que todos os testes passem. Desta forma obtemos o seguinte código no método Depositar:

public void Depositar(decimal valorDoDeposito){    this.SaldoAtual += valorDoDeposito;
    }

Agora precisamos executar todos nossos testes para ver se tudo está ok:TDD todos testes verdesBom galera, espero ter mostrado mais um pouco de TDD para vocês.Na próxima parte do artigo abordaremos como testar a interação com um repositório de contas.Abraços e até a próxima.

Voltar

Fork me on GitHub