Tag Archives: teste

Teste de Software – Conceitos & Termos

Passo Um:: Básico

Continuando a saga sobre Testes de Sofwatre. Entenda superficialmente um pouco sobre um pouco do vocabulário inerente ao universo de Teste. Vamos lá:

Testes Unitários

Consistem em escrever testes com foco somente em uma funcionalidade do código. Ou seja, na prática, escrever o teste para um método (obrigatoriamente conciso e pequeno) para ser testado.

Objetos Mocks

São objetos que simulam objetos reais para realização de testes, estes objetos são criados para testar o comportamento de outro objeto (real).

No mundo OOP, estes objetos são desenhados para simular o comportamento de objetos reais, e são normalmente utilizado em Unit Tests.

Em resumo, mocar, simular o objeto real e realizar operações de forma controlada de modo que o resultado retornado (teste) sempre será válido.

Cenários para mocar?

A utilização de objetos Mock está relacionada com os Unit Tests e o TDD, e é indicada:

  • Objs que fornecem resultados não determinísticos (Hora, Temperatura, etc)
  • Objs que possuem estados que não são fáceis de criar ou reproduzir (Erro em ambiente de redes, etc)
  • A utilização dos objetos é lenta (como dbs complexo que devem ser inicializados antes do Teste, etc)
  • Os objetos ainda não existem ou podem mudar de comportamento
  • Para realizar Teste teríamos que incluir informação e métodos exclusivos para os objetos

Quando os objetos possuem estas características, eles são bons candidatos para serem mocados, ou seja, substituídos por objetos que simulam esses comportamentos e irão retornar os resultados esperados.

Mock, Stub e Fake

Em geral, temos 3 tipos de objetos simulados: 

Mocks: objs pré-programados com informações que formam uma especificação das chamadas que esperamos receber. 

Stubs: Providenciam respostas pré-configuradas para as chamadas feitas durante os testes, em geral, não respondem a nada que não estejam programado para o teste.

Fakes: objetos mais simples que implementam a mesma interface dos objetos que representam e retornam respostas pré-arranjadas. Assim eles contém apenas um conjunto de métodos.

Nota: Stubs são usados para representar e testar o estado de um objeto e os Mocks são usados para testar as suas interações.

Pronto! Agora já conhecemos alguns conceitos básico de Teste!