unitarias unit test pruebas create assertstatus assertsee unit-testing laravel laravel-5

unit-testing - test - phpunit



Cómo burlarse de tymondesigns/jwt-auth en Laravel 5? (1)

Acabo de agregar tymondesigns / jwt-auth para admitir token auth y, en consecuencia, mis casos de prueba están fallando porque no hay ningún token en los parámetros de los encabezados. ¿Cómo puedo simular (usando Mockery ) un componente para eludir esto?

Nota: $this->be() no funciona


Una alternativa es autenticar la solicitud durante la ejecución de la prueba que pasa a un usuario en particular. Así es como lo hizo:

# tests/TestCase.php /** * Return request headers needed to interact with the API. * * @return Array array of headers. */ protected function headers($user = null) { $headers = [''Accept'' => ''application/json'']; if (!is_null($user)) { $token = JWTAuth::fromUser($user); JWTAuth::setToken($token); $headers[''Authorization''] = ''Bearer ''.$token; } return $headers; }

Luego en mis pruebas lo uso así:

# tests/StuffTest.php /** * Test: GET /api/stuff. */ public function testIndex() { $url = ''/api/stuff''; // Test unauthenticated access. $this->get($url, $this->headers()) ->assertResponseStatus(400); // Test authenticated access. $this->get($url, $this->headers(User::first())) ->seeJson() ->assertResponseOk(); }

Espero que esto los ayude a todos. Feliz codificación!