sexta-feira, 18 de junho de 2010

Spy – Testes Unitários

O Spy é semelhante ao Stub, mas além de fornecer algumas informações, também faz a gravação das informações que serão usadas nos testes. 

A cada pedido do cliente é enviado um sms.  Na classe Pedido é disparado o serviço enviar da SmsServiceSpy. Através da classe SmsServiceSpy é simulado o armazenamento de envio de sms.

No serviço testEnviaSmsPedido da classe de Teste verifico se sms foi enviado. Isto é feito através do serviço getNumeroMensages da classe SmsServiceSpy que retorna o numero de sms’s enviados, que no teste montado será retornado 1(um). Uma simulação de envio de sms usando List collection.

   @Test
    public void testEnviaSmsPedido() throws Exception {
        Pedido pedido = new Pedido(new Long(3), new Long(45));
        SmsServiceSpy smsService = new SmsServiceSpy();
        pedido.setSmsService(smsService);
        pedido.preencheTelefone(new Cliente("5181989800"));
        Assert.assertEquals(1, smsService.getNumeroMensages());
    }

Aqui temos um spy realizando a gravação das informações para serem testadas:

public class SmsServiceSpy implements SmsService{
    private List<Mensagem> mensagens= new ArrayList<Mensagem>();
  

public void enviar(Mensagem m){
        mensagens.add(m);
    }
  

public int getNumeroMensages(){

        return mensagens.size();
    }

}

Fonte: http://msdn.microsoft.com/en-us/magazine/cc163358.aspx

e

Apresentação sobre Injeção de Dependência e Testes com Dublês (Dummy Object, Stub, Mocks, Fake Objects, Spy) feita no 2o. Locaweb TechDay por Daniel Cukier http://vimeo.com/3596692

Bye see you next post

Nenhum comentário:

Postar um comentário