Test
Driven Development (TDD) ou em português Desenvolvimento dirigido por testes é
uma técnica de desenvolvimento de software que basea em um ciclo curto de
repetições: Primeiramente o desenvolvedor escreve um caso de teste automatizado
que define uma melhoria desejada ou uma nova funcionalidade. Então, é produzido
código que possa ser validado pelo teste para posteriormente o código ser
refatorado para um código sob padrões aceitáveis. Fonte: Wikipedia
Bom, não vou entrar em detalhes no conceito de TDD, pretendo mostrar a utilização e criação de testes unitários no visual Studio a
partir de suas classes.
Utilizando o exemplo que postei anteriormente, Produtividade-com-adonet-entity e Produtividade-com-adonet-entity (parte 2) , vamos lá..
Primeiramente, vamos criar um novo projeto no visual Studio 2010,
do tipo Class Library, com o nome de Exemplo02.Empacotadores
esse projeto será responsável por nos fornecer um objeto válido para utilização
nos testes, assim sempre que precisarmos de um objeto válido utilizaremos
sempre os empacotadores.
Projeto criado, agora criaremos uma classe chamada EmpacotadoresCadastro.cs
conforme a imagem abaixo:
Acima, vejam o exemplo do EmpacotadorPessoa, ou seja, sempre que precisarmos de um objeto pessoa válido nos testes, utilizaremos o EmpacotadorPessoa(); o mesmo faremos para cada teste que criarmos.
Próximo passo entao, é criarmos o projeto de teste. Vamos criar entao um projeto do tipo TestProject.
Abaixo criei os testes de Inclusão, Alteração e Exclusão da classe Pessoa().
namespace Exemplo02.Testes
{
[TestClass]
public class TestesGerais
{
public DatabaseOneContext ctx;
public TestesGerais()
{
if (this.ctx == null)
{
ctx = new DatabaseOneContext();
}
}
[TestMethod]
public void IncluindoUmaPessoa()
{
ctx.PessoaSets.Add(Empacotadores.EmpacotadoresCadastro.EmpacotadorPessoa());
ctx.SaveChanges();
Assert.IsTrue(ctx.PessoaSets.Count() > 0);
}
[TestMethod]
public void AlterarUmaPessoa()
{
ctx.PessoaSets.Add(Empacotadores.EmpacotadoresCadastro.EmpacotadorPessoa());
ctx.SaveChanges();
ctx.PessoaSets.Where(x => x.Id == ctx.PessoaSets.Max(y => y.Id)).FirstOrDefault().Nome="Alterado...";
ctx.SaveChanges();
}
[TestMethod]
public void ExcluirTodasAsPessoas()
{
ctx.PessoaSets.Add(Empacotadores.EmpacotadoresCadastro.EmpacotadorPessoa());
ctx.SaveChanges();
ctx.PessoaSets.Add(Empacotadores.EmpacotadoresCadastro.EmpacotadorPessoa());
ctx.SaveChanges();
foreach (var item in ctx.PessoaSets)
{
ctx.PessoaSets.Remove(item);
}
Assert.IsTrue(ctx.SaveChanges() > 0);
}
}
}
{
[TestClass]
public class TestesGerais
{
public DatabaseOneContext ctx;
public TestesGerais()
{
if (this.ctx == null)
{
ctx = new DatabaseOneContext();
}
}
[TestMethod]
public void IncluindoUmaPessoa()
{
ctx.PessoaSets.Add(Empacotadores.EmpacotadoresCadastro.EmpacotadorPessoa());
ctx.SaveChanges();
Assert.IsTrue(ctx.PessoaSets.Count() > 0);
}
[TestMethod]
public void AlterarUmaPessoa()
{
ctx.PessoaSets.Add(Empacotadores.EmpacotadoresCadastro.EmpacotadorPessoa());
ctx.SaveChanges();
ctx.PessoaSets.Where(x => x.Id == ctx.PessoaSets.Max(y => y.Id)).FirstOrDefault().Nome="Alterado...";
ctx.SaveChanges();
}
[TestMethod]
public void ExcluirTodasAsPessoas()
{
ctx.PessoaSets.Add(Empacotadores.EmpacotadoresCadastro.EmpacotadorPessoa());
ctx.SaveChanges();
ctx.PessoaSets.Add(Empacotadores.EmpacotadoresCadastro.EmpacotadorPessoa());
ctx.SaveChanges();
foreach (var item in ctx.PessoaSets)
{
ctx.PessoaSets.Remove(item);
}
Assert.IsTrue(ctx.SaveChanges() > 0);
}
}
}
Nenhum comentário:
Postar um comentário