Pergunta

Recentemente, eu comecei a trabalhar em função Email2SMS em nosso produto. Quando entrei para o projeto deste componente tinha zero de cobertura de código por unidade-testes. Legado código.

Uma vez que eu comecei a trabalhar nele, eu estava usando abordagem de teste primeiro. Mas a qualidade do código era muito baixa. Foi muito difícil para dividi-lo e testa pequenos pedaços por unidade-testes, então eu decidi teste de integração de escrita.

Há script php, que aceita algumas informações mensagem, procurar usuário no banco de dados e salvar algumas informações se está tudo OK.

$last_line = system('php emailtosms.php -file=unicode_message.txt ', $retval);

$this->assertStringExistsInLogFile('Email to SMS message was not sent');

É ruim ou não? Como você resolveria este problema?

Foi útil?

Solução

Não é tão bom.

Test em um nível inferior, por ter o script emailtosms.php como um wrapper simples que processa os argumentos de linha de comando, e depois passar para a classe mais testável. Dependendo da etapa final, você poderia escrever testes de unidade para fazer quase todos os mas o envio final (talvez zombar o passo final que realmente envia-lo, e apenas armazená-lo a uma variável, em seguida, verifique você tem algo válido lá).

A integração final, corre o final de ponta a classe cheia, e verificar sua saída, olhando para o log final -. Ou um pouco mais alto nível, o que seria colocado para log

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top