Postagens

Mostrando postagens com o rótulo TDD

Pex no Visual Studio 2012: Code Digger e TDD com teorias

Imagem
Uma ferramenta que eu tenho acompanhado a evolução é o Pex ( http://research.microsoft.com/en-us/projects/pex/ ). Trata-se de um projeto conduzido pela Microsoft Research desde os tempos de Visual Studio 2010. Como um subproduto deste projeto nasceu o Moles, um framework de isolamento de dependências, que na versão 2012 do Visual Studio tornou-se o Fakes. Cheguei a publicar artigos e posts referente a essas ferramentas ( Introdução ao framework de testes Microsoft Moles - Artigo Revista . Net Magazine 87 , Geração automática de testes numa abordagem TDD - Revista .Net Magazine 90  e "Novidades" no Visual Studio 11 Beta - Microsoft Fakes ). Confesso que a falta de novidades no Pex me deixou um pouco desanimado desde então, mas recentemente foi lançada uma primeira extensão dela voltada para o Visual Studio 2012: Code Digger! Mas o que faz o Pex? Bom, ele é uma ferramenta de análise de código que busca encontrar todos os caminhos lógicos de forma a identificar valores ...

Criando e testando objetos com construtores privados

Imaginem a seguinte situação. Temos uma classe qualquer. Essa classe possui uma dependência. Além disso, vamos supor que a criação desse objeto seja uma coisa complexa, ou seja, não podemos simplesmente deixar que essa classe seja instanciada por um new. // MeuObjeto.cs public class MeuObjeto { public IMinhaDependencia Dependencia { get; set; } internal MeuObjeto() { // internal para garantir que apenas // a factory possa criar este objeto } public int RetornarCalculo(int a) { return Dependencia.Calcular() + a; } } // IMinhaDependencia.cs public interface IMinhaDependencia { int Calcular(); } Temos então uma classe factory para criar uma instância desse objeto. Problema resolvido, correto? Se eu precisar de uma instância dessa classe, simplesmente chamo sua factory. // MeuObjetoFactory.cs public class MeuObjetoFactory { public MeuObjeto ...

Pex + TDD

Imagem
Olá, pessoal! Na última edição da .NET Magazine (nº 90), saiu meu artigo falando sobre a ferramenta Pex e seu uso dentro do TDD. O Pex ( http://research.microsoft.com/en-us/projects/pex/ ) é uma ferramenta de geração de código de testes automatizada, ou seja, ela gera as unit tests para você a partir do código-fonte já desenvolvido. Em um primeiro momento não vemos como isso pode se relacionar com TDD, já que a idéia desta técnica é escrever testes antes do código do programa que estamos desenvolvendo. Realmente ferramentas como o Pex não têm utilidade neste cenário quando utilizado o conceito de testes baseado em exemplos. Testes baseados em exemplos são aqueles nos quais nós temos uma entrada de dados e um resultado conhecido, e testamos o nosso código para garantir que o processamento produza a saída esperada. Para fazer sentido o uso de ferramentas de geração de testes automatizada, precisamos de um conceito de testes de unidade diferente. Precisamos pensar nossos testes co...

Artigo de Moles - .NET Magazine 87

Imagem
Pessoal, esse mês saiu a .NET Magazine edição 87 contendo um artigo meu sobre o Moles. O Moles é uma ferramenta de apoio de testes feita pela Microsoft que permite a criação de objetos dublês como stubs, além de permitir que qualquer método em .NET (inclusive os do próprio CLR) sejam interceptados e substituídos por um método escrito por você! Isso quer dizer que você pode fazer com que o DateTime.Now retorne sempre uma data fixa. Para que isso é importante? Para poder testar métodos isolando as duas dependências. O artigo explica os conceitos dessa ferramenta e como utilizá-la para que você escreva testes de unidade de forma mais eficiente. O artigo online está em http://www.devmedia.com.br/post-21606-Introducao-ao-framework-de-testes-Microsoft-Moles.html , e a revista está na banca mais próxima da sua casa. []’s e boa leitura