Buscar

Testando métodos estáticos Outro tipo de acoplamento, difícil de ser testado, é o acoplamento com métodos estáticos. Acabamos de ver que, para simu...

Testando métodos estáticos Outro tipo de acoplamento, difícil de ser testado, é o acoplamento com métodos estáticos. Acabamos de ver que, para simular o comportamento das classes, é necessário fazer uso de objetos dublês e, de alguma forma, fazer com que a classe receba e utilize esses dublês. No caso de métodos estáticos, não há como recebê-los pelo construtor. Em nosso exemplo, imagine que a data da nota fiscal nunca possa ser no fim de semana. Se a nota for gerada no sistema, o sistema deve empurrar sua data para segunda-feira. Em PHP, para pegarmos a data atual do sistema, podemos fazer uso do método estático DateTime::createFromFormat(). Como simular seu comportamento e escrever um teste para a geração de uma nota fiscal em um sábado? Nesses casos, a sugestão é sempre criar uma abstração para facilitar o teste. Ou seja, em vez de fazer uso direto do método estático, criar uma classe/interface, responsável por devolver a hora atual, e que seja possível de ser mockada. Podemos, por exemplo, criar a interface Relogio e a implementação concreta RelogioDoSistema: O gerador, por sua vez, passa a fazer uso de um relógio para pegar a data atual:

a) II and IV are correct.
b) II, III, and IV are correct.
c) I, III, and IV are correct.

Essa pergunta também está no material:

Test Driven Development - Teste e Design no Mundo Real com PHP - Casa do Codigo
213 pág.

Português Escola Colegio Estadual Barao Do Rio BrancoEscola Colegio Estadual Barao Do Rio Branco

💡 1 Resposta

User badge image

Ed Verified user icon

Vamos analisar as alternativas: a) II e IV estão corretas. b) II, III e IV estão corretas. c) I, III e IV estão corretas. A alternativa correta é a letra a) II e IV estão corretas.

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais

Outros materiais