none
Dúvidas sobre realização de testes unitários. RRS feed

  • Pergunta

  • Olaa,

                 Tenho uma classe que depende da classe SerialPort para realizar algumas funcionalidades, conforme mostrado abaixo:

    public class DispositivoImpressora{
    
         private SerialPort portaserial = null;
    
    // POR NÃO DEPENDER DE UMA INTERFACE NÃO CONSIGO REALIZAR MOCK E STUB DA MINHA DEPENDÊNCIA.
    public DispositivoImpressora(SerialPort  _serialPort )
    
         this.portaserial = _serialPort;
    }
    
    public void EnviaDados(){
    
    this.portaserial.Parity = ...
    ...
    ...
    
    }
    
    }

    Mas pretendo realizar Testes Unitários com Mocks e Stubs, mas como realizar testes unitários se essa classe não me fornece uma interface ?

    Como posso contornar o problema e realizar Testes Unitários ?

    Desde Já, Agradeço.

    quinta-feira, 20 de dezembro de 2012 23:52

Respostas

  • Uma solução é criar uma interface que contenha as funcionalidades de SerialPort que você faz uso e passar a depender dela e não diretamente de SerialPort.

    Ai na sua implementação real, você criaria uma classe que implementa esta interface e simplesmente delega as ações para uma instância de SerialPort. Enquanto que nos testes você criaria um Stub.

    • Marcado como Resposta _dev sábado, 22 de dezembro de 2012 17:13
    sexta-feira, 21 de dezembro de 2012 10:48

Todas as Respostas

  • Uma solução é criar uma interface que contenha as funcionalidades de SerialPort que você faz uso e passar a depender dela e não diretamente de SerialPort.

    Ai na sua implementação real, você criaria uma classe que implementa esta interface e simplesmente delega as ações para uma instância de SerialPort. Enquanto que nos testes você criaria um Stub.

    • Marcado como Resposta _dev sábado, 22 de dezembro de 2012 17:13
    sexta-feira, 21 de dezembro de 2012 10:48
  • Prezado Rafael Delanhese,

                     Grato pela atenção dada ao post, minha dúvida foi sanada.

    Um grande Abraço.

    sábado, 22 de dezembro de 2012 17:13