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








