O documento resume as novidades sobre testes de unidade no Visual Studio 2012, incluindo melhorias na experiência do desenvolvedor, suporte a novos frameworks de teste, isolamento de código com o framework Fakes e integração com build e continuous testing no Team Foundation Server.
Novidades sobre Testes de Unidade com Visual Studio 2012
1. Novidades sobre Testes de Unidade com
Visual Studio 2012
André Dias
Lambda3
Visual Studio ALM MVP
Visual Studio ALM Ranger
Visual Studio Summit 2012
2. Se este é o seu primeiro contato
com Testes de Unidade no Visual
Studio, visite:
youtube.com/lambda3tv
Visual Studio Summit 2012
3. A “Unit Testing Experience” do
Visual Studio 2012 está focada nos
desenvolvedores escrevendo e
executando testes de unidade
enquanto codificam.
Visual Studio Summit 2012
4. Anos de feedbacks dos clientes
• Problemas do MS-Test
Framework
– MS-Test é muito lento
– Suporte ruim para C/C++
– Faltam novas features
• Problemas de Experiência
– Desenhado para testers, não para
developers
– Não adequado para Agile & TDD
Visual Studio Summit 2012
8. Use o framework que você quiser
• Suporte nativo
– .NET
– C/C++
• Plugins de Terceiros
– NUnit
– xUnit.net
– MbUnit
– QUnit/Jasmine
– SQL Server Unit Testing
• Em desenvolvimento
Visual Studio Summit 2012
9. Melhorias no MS-Test
• Muitas melhorias de desempenho e escalabidade
– Especialmente quando você estiver com o teste de unidade “clássico”
• Suporte para teste Async
[TestMethod]
public async Task MyAsyncTest()
{
var result = await SomeLongRunningOperation();
Assert.IsTrue( result );
}
• Suporte para 64-bit e .Net multi-targeting
Visual Studio Summit 2012
11. Isolamento de código
• O novo VS2012 Fakes framework
deixa você isolar praticamente
TUDO no .NET
• Fakes vem em dois sabores
– Stubs – implementações concretas
de interface ou classes abstratas
– Shims – interceptação em runtime
deixa você substituir chamadas,
mesmo aquelas do .NET BCL
Visual Studio Summit 2012
12. Demo
Usando Fakes para criar testes de unidade rápidos e
isolados
Visual Studio Summit 2012
13. Recomendações
• Stubs
– Uma extensão natural de estratégias de testes bem conhecidas
– Você deveria se sentir bem ao usá-los em seus testes.
• Shims
– São incrivelmente poderosos e algumas vezes a única forma de
testar certas coisas… mas são malignos!
– Use Shims para conseguir testar o seu código
– Mas não pare por aí…
– Refatore o seu código para que você não precise mais de Shims
– Então remova-o
Visual Studio Summit 2012
14. Code coverage no VS 2012
• Analise sua cobertura de
código com um simples clique.
• Analise um grupo de testes
para ajudar a descobrir como
testes específicos estão
cobrindo seu Sistema.
• Suporta todos os frameworks
gerenciados e nativos
Visual Studio Summit 2012
16. Team Foundation Build
• Se funciona no Visual Studio,
funciona no Team Foundation Build
– 3rd party frameworks
– Visual Studio Fakes Isolation
Framework
– Code Coverage
• Mais…
– Hosted Build (Team Build na
Nuvem)
– Test Impact Analysis
Visual Studio Summit 2012
18. Continuous Testing
• “Se você não está
executando seus testes de
unidade, você está apenas
compilando. Você não está
building.”
Chris Patterson
Program Manager
Team Foundation Build
• Run Tests After Build irá
rodar seus testes de unidade
após cada build com
sucesso de sua solução
Visual Studio Summit 2012
20. Forte compatibilidade com VS2010
• Projetos de Testes do VS2010
devem funcionar no VS2012
sem qualquer migração (e
voltar para o VS 2010)
• O Team Build 2012 pode ser
configurado para usar o runner
do VS2010 ou o novo VS 2012
runner
Visual Studio Summit 2012
21. Mas espere, ainda tem mais!
• Disponível no Visual Studio Express
2012
– Mesma experiência de testes de unidade
– Sem extensibilidade (3rd party framework)
– Sem continuous test runner
– Sem fakes framework
Visual Studio Summit 2012
22. O que está faltando?
• Test Lists
– Modo legado apenas
• Test Impact
– Funciona no server,
– não no VS Client
• Private accessors
– Depreciado no VS 2010,
removido no VS 2012
Visual Studio Summit 2012
23. A “Unit Testing Experience” do
Visual Studio 2012 está focada nos
desenvolvedores escrevendo e
executando testes de unidade
enquanto codificam.
Visual Studio Summit 2012
24. Obrigado!
Tem alguma questão agora?
– Levante a mão e pergunte!
– Vou estar por aí até o fim do evento.
Lembrou de uma questão mais tarde?
andre@lambda3.com.br
André Dias
blog.lambda3.com.br
@AndreDiasBR
Visual Studio Summit 2012