mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-06 16:16:53 +01:00
Add test.functional.txt Brazilian Portuguese translation to Yii Definitive Guide.
This commit is contained in:
104
docs/guide/pt_br/test.functional.txt
Normal file
104
docs/guide/pt_br/test.functional.txt
Normal file
@@ -0,0 +1,104 @@
|
||||
Testes Funcionais
|
||||
==================
|
||||
|
||||
Antes de ler esta seção, é recomendável que você primeiro leia a
|
||||
[documentação do Selenium](http://seleniumhq.org/docs/) e a
|
||||
[documentação do PHPUnit](http://www.phpunit.de/wiki/Documentation). Nós
|
||||
resumimos a seguir os princípios básicos de escrita de testes funcionais no Yii:
|
||||
|
||||
* Como nos testes unitários, um teste funcional é escrito em termos de uma
|
||||
classe `XyzTest` que estende de [CWebTestCase], onde `Xyz` representa a
|
||||
classe que está sendo testada. Uma vez que
|
||||
`PHPUnit_Extensions_SeleniumTestCase` é a classe-mãe de [CWebTestCase],
|
||||
podemos usar todos os métodos herdados desta classe.
|
||||
|
||||
* A classe do teste funcional é salva num arquivo PHP chamado `XyzTest.php`.
|
||||
Por convenção, o arquivo do teste funcional pode ser armazenado no diretório
|
||||
`protected/tests/functional`.
|
||||
|
||||
* A classe de teste contém principalmente um conjunto de métodos de teste
|
||||
chamados como `testAbc`, onde `Abc` geralmente é o nome de uma funcionalidade
|
||||
que será testada. Por exemplo, para testar a funcionalidade de login, podemos
|
||||
ter um método de teste chamado `testLogin`.
|
||||
|
||||
* Um método de teste geralmente contém uma série de declarações que emitirão
|
||||
comandos para o Selenium RC interagir com a aplicação Web que está sendo
|
||||
testada. Também contém declarações de asserção para verificar que a aplicação
|
||||
Web responde conforme o esperado.
|
||||
|
||||
Antes de explicarmos como escrever um teste funcional, observaremos o arquivo
|
||||
`WebTestCase.php` gerado pelo comando `yiic webapp`. Este arquivo define a
|
||||
classe `WebTestCase` que pode servir como a classe-mãe de todas as classes de
|
||||
testes funcionais.
|
||||
|
||||
~~~
|
||||
[php]
|
||||
define('TEST_BASE_URL','http://localhost/yii/demos/blog/index-test.php/');
|
||||
|
||||
class WebTestCase extends CWebTestCase
|
||||
{
|
||||
/**
|
||||
* Configura antes que cada método de teste seja executado.
|
||||
* Define principalmente a URL base da aplicação de testes.
|
||||
*/
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->setBrowserUrl(TEST_BASE_URL);
|
||||
}
|
||||
|
||||
......
|
||||
}
|
||||
~~~
|
||||
|
||||
A classe `WebTestCase` define principalmente a URL base de todas as páginas que
|
||||
serão testadas. Mais adiante, nos métodos de teste, podemos usar URLs relativas
|
||||
para especificar quais páginas serão testadas.
|
||||
|
||||
Também devemos prestar atenção se usamos na URL base de testes o arquivo
|
||||
`index-test.php` como script de entrada ao invés de `index.php`. A única
|
||||
diferença entre `index-test.php` e `index.php` é que o primeiro usa a
|
||||
configuração de aplicação `test.php` enquanto o segundo usa `main.php`.
|
||||
|
||||
Agora descrevemos como testar a funcionalidade de mostrar um post no
|
||||
[exemplo de blog](http://www.yiiframework.com/demos/blog). Primeiro escrevemos a
|
||||
classe de teste como segue, observando que ela estende da classe-mãe que
|
||||
acabamos de mostrar:
|
||||
|
||||
~~~
|
||||
[php]
|
||||
class PostTest extends WebTestCase
|
||||
{
|
||||
public $fixtures=array(
|
||||
'posts'=>'Post',
|
||||
);
|
||||
|
||||
public function testShow()
|
||||
{
|
||||
$this->open('post/1');
|
||||
// verifica se o título do post de exemplo existe
|
||||
$this->assertTextPresent($this->posts['sample1']['title']);
|
||||
// verifica se o formulário de comentários existe
|
||||
$this->assertTextPresent('Leave a Comment');
|
||||
}
|
||||
|
||||
......
|
||||
}
|
||||
~~~
|
||||
|
||||
Como ao escrever classes de testes unitários, nós declaramos as fixtures que
|
||||
serão usadas por este teste. Aqui indicamos que a fixture `Post` deve ser usada.
|
||||
No método de teste `testShow`, primeiros instruimos o Selenium RC a acessar a
|
||||
URL `post/1`. Observe que esta é uma URL relativa, e que a URL completa é
|
||||
formada adicionando-a à URL base que configuramos na classe-mãe (ou seja,
|
||||
`http://localhost/yii/demos/blog/index-test.php/post/1`). Então verificamos que
|
||||
podemos encontrar o título do post `sample1` na página da Web atual. E nós
|
||||
também verificamos que a página contém o texto `Leave a Comment` (deixe um
|
||||
comentário).
|
||||
|
||||
> Tip|Dica: Antes de rodar os testes funcionais, o servidor do Selenium-RC deve
|
||||
estar iniciado. Isso pode ser feito executando-se o comando
|
||||
`java -jar selenium-server.jar` dentro do diretório de instalação do servidor do
|
||||
Selenium.
|
||||
|
||||
<div class="revision">$Id$</div>
|
||||
Reference in New Issue
Block a user