Dev (Back & Front)ARTIGO

Não se esqueça do front

Todo mundo fala sobre testes automatizados para o seu código, mas isso é apenas a metade dos testes que eu preciso. E o front-end? Formulários também precisam ser testados, e o SimpleTest é maneira como consigo isso.

Todo mundo fala sobre testes automatizados para o seu código, mas isso é apenas a metade dos testes que eu preciso. E o front-end? Formulários também precisam ser testados, e o SimpleTest é maneira como consigo isso.

O SimpleTest é muito fácil de instalar. Basta baixar a versão mais recente, fazer o upload para o servidor e, em seguida, descompactá-lo. É isso! Agora você pode começar a escrever testes.

O SimpleTest pode lidar com todos os testes unitários para o seu código nos bastidores, mas também possui um navegador interno, para que ele possa testar o front end também. Para começar, crie um arquivo PHP para seus testes. Inclua autorun.php do SimpleTest. Para os testes que utilizam o navegador interno, você também vai precisar incluir web_tester.php. Em seguida, crie uma classe para os testes que estenda a classe WebTestCase.

require_once 'simpleTestDir/autorun.php';
require_once 'simpleTestDir/web_tester.php';

class contactForm extends WebTestCase {

}

Agora é a hora de começar os testes reais. O SimpleTest oferece uma série de opções para testar. Você pode verificar o título da página, se o texto específico está presente em uma determinada página, se um determinado cookie existe, e muito mais. Consulte a documentação do SimpleTest para uma lista completa de opções.

Uma das coisas que eu gosto ao realizar testes é me certificar de que uma mensagem de erro específica é exibida quando dados ruins são enviados em um formulário. Com o SimpleTest, isso é fácil. Carregue um formulário usando $this->get() e forneça a URL da página que você deseja testar. Insira os dados em um campo usando $this->setField() e forneça o nome do campo como o primeiro argumento e o valor do campo como o segundo argumento. Faça um commit de um erro, como deixar um dos campos obrigatórios vazios; em seguida, envie o formulário com $this->clickSubmit() e forneça o título do botão enviar. Finalmente, você pode verificar se a mensagem de erro está sendo exibida na página executando $this->assertText() e fornecendo o texto da mensagem de erro. O código seria algo assim:

require_once 'simpleTestDir/autorun.php';
require_once 'simpleTestDir/web_tester.php';

class contactForm extends WebTestCase {
   function testUsernameField() {
      $this->assertTrue($this->get('http://myWebsite.com/myForm/'));
      $this->setField('username', 'bad username');
      $this->clickSubmit('Send');
      $this->assertText('Please enter a username with no spaces.');
   }
}

Agora, quando você visualizar seu arquivo de teste em um navegador, você receberá um relatório dizendo que o caso de teste está completo e que – espero – você tem duas passagens, uma para o seu assertTrue e um para seu assertText. Você conseguiu; você está testando seu formulário! O SimpleTest também se integra a muitas das plataformas de integração contínua, de modo que você pode incorporar testes front-end ao resto de sua caixa de ferramentas de testes.

***

Texto original disponível em http://phpadvent.org/2011/dont-forget-the-front-by-beth-tucker-long

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Ver perfil