Skip to content

Instantly share code, notes, and snippets.

@IsTheJack
Created September 27, 2015 18:07
Show Gist options
  • Save IsTheJack/714170b9af131646b03a to your computer and use it in GitHub Desktop.
Save IsTheJack/714170b9af131646b03a to your computer and use it in GitHub Desktop.
Exemplo de código de teste automatizado usando PHP Unit no Laravel
<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ProdutoTest extends TestCase
{
/**
* Páginas atuais que precisam de autenticação para serem acessadas
*/
private $paginaLogin = 'auth/login';
/**
* Para adicionar, editar e remover um novo produto, o usuário deverá estar logado.
* Este teste deverá mostrar a tela de login ao usuário que tentar
* adicionar um produto sem estar logado!
*
* @return void
*/
public function testAutenticacaoRequeridaAoAcessar()
{
$acoesComAutenticacao = [
action('ProdutoController@novo'),
action('ProdutoController@adiciona'),
action('ProdutoController@edita'),
action('ProdutoController@altera'),
action('ProdutoController@remove'),
];
foreach ($acoesComAutenticacao as $pg)
$this->visit($pg)->seePageIs($this->paginaLogin);
}
public function testeAcessoCorretoParaUsuariosAutenticados()
{
$paginasComAutenticacao = [
action('ProdutoController@novo'),
action('ProdutoController@edita', [
'id' => Estoque\Produto::first()->id,
])
];
$usuario = factory(Estoque\User::class)->create();
foreach ($paginasComAutenticacao as $pg)
$this->actingAs($usuario)->visit($pg)->seePageIs($pg);
}
public function submetendoAdicaoProdutoSemPreencherOsCamposObrigatorios()
{
$usuario = factory(Estoque\User::class)->create();
$this->actingAs($usuario)
->visit(action('Produto@novo'))
->press('Salvar')
->seePageIs(action('Produto@novo'));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment