quarta-feira, 3 de fevereiro de 2010

NUnit: Testes unitários com C#

Objetivo:

Test-Driven Development em .NET

Primeiramente vamos fazer o downloado do NUnit ( esse index.php ta matando )

Eu não vou entrar em detalhes, se você está aqui é porque já tem idéia do que é testes unitários e para que eles servem


eu mesmo era contra, achava perca de tempo (nessa época eu programava em VB, desculpa) 

Vamos a prática, esse blog tem que ser prático:
  1. Criar um projeto chamdo ProjetoTest e add:
    a classe clDAOTest no Diretório: DAO
  2. vamos importar a referência para "nunit.framework".
  3. vamos usá-la no topo da sua classe: using NUnit.Framework; 

Agora precisamos dizer para a classe que ela vai conter methodos de testes:
 [TestFixture(Description = "Teste unitário para a classe clAlgumaCoisa.")]

E vai ficando assim:
using NUnit.Framework;
namespace ProjetoTest.DAO
{
   

    [TestFixture(Description = "Teste unitário para a classe clDAOTest.")]
    public class clDAOTest
    {
    }
}
O Atributo TestFixture vai dizer para a classe que ela é visivel ao NUnit e que deve ser testada, Pronto,  já temos nossa estrutura básica para testar nosso software. 

Vamos ao segundo atributo:
[Test(Description = "Teste unitário do método ProcurarTodos().")] 
  
[Test(Description = "Teste unitário do método ProcurarTodos().")]
        public void ProcurarTodos()
        { 
        }
e nossa classe ta ficando assim:

using NUnit.Framework;
namespace ProjetoTest.DAO
{
   

    [TestFixture(Description = "Teste unitário para a classe clDAOTest.")]
    public class clDAOTest
    {
                [Test(Description = "Teste unitário do método ProcurarTodos().")]
                public void ProcurarTodos()
                { 
                      //Entra com o código de teste.
                }
    }
}
 Bom agora chegamos em um ponto que vamos ter que falar sobre os "Assertions" que acredito seja o "ponto G" do nosso teste, eu não vou me aprofundar muito e vou usar somente  o que compara dois objetos ( AreEqual ), é ele que vai dizer se passou ou não! GREENBAR ou REDBAR! 


 Vamos imaginar que eu tenha uma entidade chamada Pessoa
Pessoa oPessoa= new Pessoa();
oPessoa.ID = 1;
oPessoa.Nome = "Matheus";
// Notem que eu estou preenchendo na mão esse infeliz, e o outro
// eu vou preencher atravez da minha DAO passando o mesmo ID
Pessoa oPessoaDAO = MinhaDAO.Recuperar(1);
Assert.AreEqual( oPessoa, oPessoaDAO);
ÓóòòòÓO... só isso? mais ou menos. 

Vamos ver como esta ficando nosso código: 


using NUnit.Framework;
namespace ProjetoTest.DAO
{
   

    [TestFixture(Description = "Teste unitário para a classe clDAOTest.")]
    public class clDAOTest
    {
                [Test(Description = "Teste unitário do método ProcurarTodos().")]
                public void ProcurarTodos()
                { 
                    
              Pessoa oPessoa= new Pessoa();
              oPessoa.ID = 1;
              oPessoa.Nome = "Matheus";              
              Pessoa oPessoaDAO = MinhaDAO.Recuperar(1); 
              Assert.AreEqual( oPessoa, oPessoaDAO);
                }
    }
}

Se esses objetos etiverem idênticos, quer dizer que a sua DAO está agindo da forma que você esperava e com isso você evita muita dor de cabeça, claro isso é muito básico. e tem muito mais entre o céu e o inferno do que sonha seu vã visual studio. mas já é um começo.

Nenhum comentário:

Postar um comentário