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/index.php/tdd-test-driven-development-c/
Parte II - http://viniciusquaiato.com/blog/index.php/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:

Percebam 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:

O 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:

Agora 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:

Isso 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:

Bom 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.
Original em: http://www.viniciusquaiato.com






















8:31 em 5 de novembro de 2009
TDD – Test-driven Development + C# – Parte III | Profissionais TI…
Vamos lá galera, vamos continuar nossa série sobre TDD + C#. Neste artigo abordaremos depósitos….