{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}
02/11/2009
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.