infotic:projetos:dev:lang:php:laravel:testes:dusk
no way to compare when less than two revisions
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
— | infotic:projetos:dev:lang:php:laravel:testes:dusk [27/04/2021 12:05] (atual) – criada - edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Laravel Dusk ====== | ||
+ | O Dusk é uma ferramenta de testes de interface introduzida no Laravel 5.7. Essa ferramenta permite testar as interfaces Web da aplicação utilizando uma API simplificada e expressiva. Internamente, | ||
+ | |||
+ | ===== Instalação ===== | ||
+ | |||
+ | O Dusk não vêm instalado como dependência padrão e precisa ser instalado através do Composer. | ||
+ | |||
+ | < | ||
+ | $ composer require --dev laravel/ | ||
+ | $ php artisan dusk: | ||
+ | </ | ||
+ | |||
+ | Um diretório chamado //Browser// será criado dentro do diretório //tests//. | ||
+ | |||
+ | **Atenção** para as permissões do diretório '' | ||
+ | |||
+ | < | ||
+ | $ chmod -R 0755 vendor/ | ||
+ | </ | ||
+ | |||
+ | ===== Utlização básica ===== | ||
+ | |||
+ | ==== Criar testes ==== | ||
+ | |||
+ | Para criar um novo teste Dusk use o comando Artisan '' | ||
+ | |||
+ | < | ||
+ | $ php artisan dusk:make AlunoTest | ||
+ | </ | ||
+ | ==== Rodar testes ==== | ||
+ | |||
+ | Para executar os testes é necessário usar o comando '' | ||
+ | |||
+ | < | ||
+ | $ php artisan dusk | ||
+ | </ | ||
+ | |||
+ | ===== Interação com os elementos ===== | ||
+ | |||
+ | ==== Seletores ==== | ||
+ | O Dusk suporta seletores CSS para referenciar os elementos da página. Além disso, permite o uso de seletores específicos que permitem referenciar um elemento mesmo que a estrutura da página ou o CSS mudem. Para definir um seletor, basta adicionar um atributo '' | ||
+ | |||
+ | < | ||
+ | // HTML... | ||
+ | <button dusk=" | ||
+ | |||
+ | // Teste... | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | ==== Links ==== | ||
+ | |||
+ | Para clicar em um link, basta usar o método '' | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | ==== Texto, valores e atributos ==== | ||
+ | |||
+ | === Recuperando e setando valores === | ||
+ | O Dusk provê diversos métodos para interagir com os textos, valores e atributos dos elementos na página. Por exemplo para pegar o valor de um elemento que corresponde a um seletor, basta usar o método '' | ||
+ | |||
+ | < | ||
+ | // Pega o valor... | ||
+ | $valor= $browser-> | ||
+ | |||
+ | // Define o valor... | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === Recuperando texto === | ||
+ | O método '' | ||
+ | |||
+ | < | ||
+ | $texto = $browser-> | ||
+ | </ | ||
+ | |||
+ | === Recuperando atributos === | ||
+ | O método '' | ||
+ | |||
+ | < | ||
+ | $atributo = $browser-> | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Formulários ==== | ||
+ | ===Digitando valores=== | ||
+ | O Dusk fornece vários métodos para interagir com formulários e elementos **input**. Primeiro, um exemplo em que texto é digitado num campo input: | ||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | Perceba que não é obrigatória a passagem de um seletor CSS, apesar do método '' | ||
+ | |||
+ | Para adicionar texto a um campo sem limpar o conteúdo já preenchido, deve-se utilizar o método '' | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | -> | ||
+ | </ | ||
+ | |||
+ | Também é possível limpar o valor de um input usando o método '' | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === Caixas de seleção (comboboxes) === | ||
+ | Para selecionar um valor numa caixa de seleção, você deve usar o método '' | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | Também é possível selecionar uma opção aleatória, omitindo o segundo parâmetro: | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === Caixas de marcação (checkboxes) === | ||
+ | Para marcar um // | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | |||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === Botões de rádio === | ||
+ | Para selecionar um botão de rádio, você pode usar o método '' | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === Adicionando arquivos === | ||
+ | O método '' | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | **Atenção!** O método attach requer que a extensão '' | ||
+ | |||
+ | === Clicando em elementos === | ||
+ | O método '' | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === Usando o teclado === | ||
+ | O método '' | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | **Atenção!** Todas as teclas modificadoras devem ser envolvidas por '' | ||
+ | |||
+ | ==== Aguardando elementos ==== | ||
+ | === Aguardando === | ||
+ | Se for necessário pausar por um número fixo de milissegundos, | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === Aguardando por seletores === | ||
+ | |||
+ | O método '' | ||
+ | |||
+ | < | ||
+ | // Espera por um máximo de 5 segundos pelo seletor... | ||
+ | $browser-> | ||
+ | |||
+ | // Espera por um máximo de 1 segundo pelo seletor... | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | Também é possível esperar até que um determinado seletor não esteja mais presente na página: | ||
+ | < | ||
+ | $browser-> | ||
+ | |||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === Aguardar por texto === | ||
+ | O método '' | ||
+ | |||
+ | < | ||
+ | // Espera por um máximo de 5 segundos pelo texto... | ||
+ | $browser-> | ||
+ | |||
+ | // Espera por um máximo de 1 segundo pelo texto... | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | ==== Caixas de diálogo Javascript ==== | ||
+ | O dusk fornece vários métodos para interagir com caixas de diálogo javascript: | ||
+ | |||
+ | < | ||
+ | // Aguarda um diálogo aparecer: | ||
+ | $browser-> | ||
+ | |||
+ | // Testa que um diálogo foi exibido e que sua mensagem corresponde ao valor fornecido: | ||
+ | $browser-> | ||
+ | |||
+ | // Digita o valor fornecido em um '' | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | Para fechar um diálogo javascript, cllicando no botão **OK**: | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | Para fechar um diálogo javascript, clicando no botão cancelar (apenas para caixas de confirmação): | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Assertivas ===== | ||
+ | |||
+ | ==== Principais testes ==== | ||
+ | |||
+ | === assertUrlIs === | ||
+ | |||
+ | Testa que a URL atual corresponde à string fornecida: | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === assertSee=== | ||
+ | |||
+ | Testa que o texto fornecido está presente na página: | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === assertDontSee=== | ||
+ | |||
+ | Testa que o texto fornecido não está presente na página: | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === assertPresent=== | ||
+ | |||
+ | Testa que o elemento correspondente ao seletor CSS está presente na página: | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === assertMissing === | ||
+ | |||
+ | Testa que o elemento correspondente ao seletor CSS não está visível/ | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | === assertDialogOpened=== | ||
+ | |||
+ | Testa que a caixa de diálogo javascript com o texto fornecido abriu: | ||
+ | |||
+ | < | ||
+ | $browser-> | ||
+ | </ | ||
+ | |||
+ | ==== Demais testes ==== | ||
+ | |||
+ | Além dos testes já mostrados, o Dusk possui diversas outras assertivas de testes. Para mais informações, | ||
+ | * [[https:// | ||
+ | |||
+ | ===== Links externos ===== | ||
+ | * [[https:// |
infotic/projetos/dev/lang/php/laravel/testes/dusk.txt · Última modificação: 27/04/2021 12:05 por 127.0.0.1