Novidades sobre Testes de Unidade com
Visual Studio 2012
André Dias
Lambda3
Visual 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
Demo
Visão Geral da nova janela Test Explorer




Visual Studio Summit 2012
Experiência focada no Desenvolvedor




Visual Studio Summit 2012
Arquitetura




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
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
Demo
Testando métodos async com MS-Test




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
Demo
Usando Fakes para criar testes de unidade rápidos e
isolados




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
Demo
Code Coverage




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
Demo
Testes de Unidade com Team Build na Nuvem




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 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
Demo
Continuous Testing




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 tarde?
          andre@lambda3.com.br
                                        André   Dias
          blog.lambda3.com.br
          @AndreDiasBR

Visual Studio Summit 2012

Novidades sobre Testes de Unidade com Visual Studio 2012

  • 1.
    Novidades sobre Testesde 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 TestingExperience” do Visual Studio 2012 está focada nos desenvolvedores escrevendo e executando testes de unidade enquanto codificam. Visual Studio Summit 2012
  • 4.
    Anos de feedbacksdos 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
  • 5.
    Demo Visão Geral danova janela Test Explorer Visual Studio Summit 2012
  • 6.
    Experiência focada noDesenvolvedor Visual Studio Summit 2012
  • 7.
  • 8.
    Use o frameworkque 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
  • 10.
    Demo Testando métodos asynccom MS-Test 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 paracriar 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 noVS 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
  • 15.
  • 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
  • 17.
    Demo Testes de Unidadecom Team Build na Nuvem Visual Studio Summit 2012
  • 18.
    Continuous Testing • “Sevocê 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
  • 19.
  • 20.
    Forte compatibilidade comVS2010 • 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, aindatem 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 TestingExperience” 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