Download the PHP package emeset/test without Composer
On this page you can find all versions of the php package emeset/test. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package test
emeset/test
Eines de testing per a projectes basats en el microframework docent Emeset.
L’objectiu del paquet és que, en un projecte Emeset, puguis escriure tests així de senzills:
i tenir automàticament disponible:
- el contenidor d’Emeset (
App\ContaineroEmeset\Container), - el fitxer de configuració del projecte (
App/config.php), - l’entorn de test (
.env.test), - una sessió PHP inicialitzada per treballar amb
$_SESSIONi middleware.
Instal·lació
Al teu projecte Emeset (per exemple, el projecte links o el projecte de sessió/login), executa:
Això instal·larà:
- el paquet
emeset/test, - el framework
emeset/framework(si no el tens ja), - i
phpunit/phpunit.
Configuració bàsica del projecte
El paquet NO crea fitxers al teu projecte ni genera res automàticament.
Tu decideixes on van les coses. Et proposo la següent estructura:
1. Fitxer phpunit.xml a l’arrel del projecte
Crea un fitxer phpunit.xml amb aquest contingut mínim:
2. Fitxer tests/bootstrap.php
Crea el fitxer tests/bootstrap.php:
3. Afegir un script de test a composer.json (opcional però recomanat)
Al composer.json del teu projecte pots afegir:
A partir d’ara, podràs executar els tests amb:
Escriure el primer test (SmokeTest)
Crea la carpeta tests/ i dins un fitxer tests/SmokeTest.php:
Executa:
Si tot està bé, veuràs que tens 1 test OK.
A partir d’aquí ja pots fer servir la Emeset\Test\TestCase per provar el teu codi Emeset.
Classe base Emeset\Test\TestCase
Quan vulguis fer tests del teu codi Emeset (controladors, middlewares, models…), fes servir la classe base del paquet:
Què fa aquesta TestCase per tu?
A cada test:
- Crea el contenidor del projecte (
App\Containersi existeix, sinóEmeset\Container). - Carrega el fitxer de configuració del projecte (
App/config.php). - Marca l’entorn com a test (
PHPUNIT_RUNNING=1) perquè Emeset pugui carregar.env.test. - Assegura que la sessió està engegada (
session_start()si cal) i neteja$_SESSIONabans de cada test. - Et proporciona aquests helpers:
Recursos d’exemple al paquet
Dins el paquet emeset/test trobaràs una carpeta resources/ amb exemples:
ExamplePortadaControllerTest.php (resum)
Exemple de test d’un controlador que carrega una vista:
ExamplePortadaRutaTest.php (resum)
Exemple de test d’una ruta:
Emeset/test també permet fer testos de rutes, aquest són testos d'integració. Per poder-ho fer cal fer un petit canvi a l'index.php Caldrà copiar les rutes a un fitxer rutes.php que crearem a la carpeta App/. Així a l'index.php passarem de:
a
I al fitxer App\routes.php
Aquest canvi permetra que el testCase també pugui inicialtizar les rutes per als testos.
I podrem fer testos com aquest.
El test case té tres mètodes per fer testos de rutes:
- protected function get(string $uri, array $query = [], array $session = [])
- protected function post(string $uri, array $post = [], array $session = [])
- protected function call(string $method, string $uri, array $query = [], array $post = [], array $session = []): \Emeset\Contracts\Http\Response
Flux de treball recomanat
-
Instal·lar el paquet al projecte Emeset:
-
Crear
phpunit.xmlitests/bootstrap.phpa partir de les plantilles. -
Afegir un primer
SmokeTestsenzill. -
Crear un test de controlador que no toqui base de dades (per exemple, Portada).
- Quan això funcioni, passar al tutorial de
FirstStepsUnitTesting.mdper provar controladors que sí que treballen amb BD.
On seguir
FirstStepsUnitTesting.md→ guia pas a pas per crear un test d’un controlador que interactua amb la base de dades.