• Like
Testes Unitários
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Testes Unitários

  • 96 views
Published

Apresentação de Testes Unitários para a equipe de desenvolvimento da WebCasters

Apresentação de Testes Unitários para a equipe de desenvolvimento da WebCasters

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
96
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TESTES AUTOMATIZADOS Testes Unitários
  • 2. Eu não vejo nenhuma razão do por que isso não vai funcionar Escrever sistema sem testes automatizados é como trabalhar em um painel de eletricidade com um garfo... Ahhhh... É por isso.
  • 3. Por que testar?  Como você sabe que o seu código funciona?  Testes são uma maneira de ter certeza de que o SUT (System Under Test) funciona  Mas como você sabe que o seu Teste funciona?  Será que você deve escrever teste para o seu teste?  Então por que confiamos nos testes?  Porque nós vimos ele falhar  Se o teste não falhar, como temos certeza de que ele está testando alguma coisa?  TDD  Test Driven Development  Prega criar o teste antes do código  Rodar o teste (vai falhar)  Escrever o código para o teste passar
  • 4. Tipos de Testes  Testes de Carga  Testes de UI  Testes de Desempenho  Testes de Integração  Testes de Aceitação  Testes Unitários
  • 5. Teste Unitário x Teste Integração  Teste de um único método  Não deve depender de nenhuma outra unidade  Banco de dados, arquivos de sistemas, arquivos de configuração, WebServices, outras classes Como você separa os testes unitários dos testes de integração?
  • 6. Nomenclatura nos Testes  Por que padronizar nomenclatura é importante?  Facilita o entendimento sobre o que está sendo testado  Facilita o desenvolvedor a escrever o teste  Nome de classes de testes  NomeClasseTestadaDeve  NomeClasseTestada_NomeMetodo_Deve  Nome de métodos de testes  Deve ser uma ação que a classe testada deve fazer  Exemplos  ConversorTransmissaoDeve  LancarExcecao_QuandoTransmissaoXmlNula  ConverterTransmissao_QuandoTransmissaoXmlValida  CalculadorPreco_Calcular_Deve  RetornarPrecoPorKilo_QuandoUnidadeForPorKilo  RetornarZero_QuandoItensVazio
  • 7. Fases do Teste  Existem 3 fases  Criar o ambiente necessário para realizar o teste  Instanciar classes, inicializar parametros  Executar o método que está testando (SUT)  Verificar se as condições esperadas foram satisfeitas  Asserts  Organizar o código do teste seguindo essas fases  AAA - Arrange / Act / Assert  Given / When / Then  Vantagens  Testes mais organizados  Testes mais limpos  Bater o olho e saber o que e como certa funcionalidade está sendo testada  Exemplo teste sem a discriminação das 3 fases  CRM
  • 8. Como criar um código testável?  SOLID  Código difícil de testar  ConversorTransmissao  Refatorando  Inversão de Dependência  Mock  Biblioteca Moq
  • 9. Outro exemplo
  • 10. Evitar  Métodos estáticos  DateTime.Now  File.*  Directory.*  AppDomain.*  Instanciar novas classes
  • 11. Praticando  Módulo Wowza  Carrinho  Sugestão DOJO