Visual Studio Summit 2012
André Dias
Novidades sobre Testes de Unidade com Visual Studio 2012
Lambda3Visual Studio ALM MVP Visual Studio ALM Ranger
Visual Studio Summit 2012
Se este é o seu primeiro contato com Testes de Unidade
no Visual Studio, visite: youtube.com/lambda3tv
Visual Studio Summit 2012
A “Unit Testing Experience” do Visual Studio 2012 está focada
nos desenvolvedores escrevendo e executando
testes de unidade enquanto codificam.
Visual Studio Summit 2012
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
Visão Geral da nova janela Test Explorer
Demo
Visual Studio Summit 2012
Experiência focada no DesenvolvedorRed-Green
BarO teste mais
importante aparece primeiro
Tempos
Mostra testes de qualquer
framework
Busca
Detalhes de Execução
Visual Studio Summit 2012
ArquiteturaVisual Studio
Unit Test Explorer
Command Line Runner
TeamBuild Unit Test Activity
Visual Studio Unit Test Platform
MS-Test
Managed
MS-Test
NativeNUnit
xUnit.net
QUnit MORE!
Visual Studio Summit 2012
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
• 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
Melhorias no MS-Test
Visual Studio Summit 2012
Testando métodos async com MS-Test
Demo
Visual Studio Summit 2012
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
Usando Fakes para criar testes de unidade rápidos e isolados
Demo
Visual Studio Summit 2012
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
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
Code Coverage
Demo
Visual Studio Summit 2012
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
Testes de Unidade com Team Build na Nuvem
Demo
Visual Studio Summit 2012
Continuous Testing• “Se você não está
executando seus testes de unidade, você está apenas compilando. Você não está building.”
Chris PattersonProgram ManagerTeam 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
Continuous Testing
Demo
Visual Studio Summit 2012
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
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
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
A “Unit Testing Experience” do Visual Studio 2012 está focada
nos desenvolvedores escrevendo e executando
testes de unidade enquanto codificam.
Visual Studio Summit 2012
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 [email protected]@AndreDiasBR
André Dias