Download the PHP package paki/laravel-auto-test without Composer
On this page you can find all versions of the php package paki/laravel-auto-test. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download paki/laravel-auto-test
More information about paki/laravel-auto-test
Files in paki/laravel-auto-test
Package laravel-auto-test
Short Description Package Laravel pour générer automatiquement des tests unitaires.
License MIT
Informations about the package laravel-auto-test
Laravel Test Generator
Un package Laravel pour générer automatiquement des tests unitaires pour les méthodes annotées avec @Testable
.
Fonctionnalités
- Génération automatique de tests unitaires : Génère des tests pour les méthodes annotées avec
@Testable
. - Personnalisation des tests via des annotations : Définissez la réponse attendue avec
@TestResponse
et le type d'assertion avec@assertion
directement dans le docblock des méthodes. - Répertoires personnalisés : Configurez le répertoire des classes à explorer (par défaut
Services
). - Types d'assertions supportés : Vous pouvez choisir parmi plusieurs types d'assertions comme
assertEquals
,assertNotNull
,assertNull
, etc.
Installation
-
Ajouter le package à votre projet :
- (Optionnel) Publier la configuration :
Exemple d'usage
1. Usage de base
Ajoutez l'annotation @Testable
à la méthode que vous souhaitez tester. Cela indiquera au package que cette méthode doit être testée automatiquement.
2. Personnaliser la réponse attendue
Si vous souhaitez définir une réponse attendue pour le test, vous pouvez utiliser l'annotation @TestResponse
dans le docblock de votre méthode.
3. Personnaliser le type d'assertion
L'annotation @assertion
permet de spécifier le type d'assertion à utiliser dans le test généré. Par exemple, vous pouvez utiliser assertNull
ou assertEquals
.
4. Exemple complet avec plusieurs annotations
Voici un exemple où nous combinons @Testable
, @TestResponse
et @assertion
pour personnaliser entièrement le test généré.
Ce test vérifiera que la méthode getUserDetails()
retourne "200 OK"
en utilisant l'assertion assertEquals
.
5. Commande artisan pour générer les tests
-
Générer des tests pour un répertoire spécifique avec une réponse et assertion personnalisées :
Pour générer des tests pour le répertoire
Services
avec une réponse"Success"
et une assertionassertEquals
, vous pouvez exécuter la commande suivante : -
Générer des tests pour un autre répertoire (par exemple
Controllers
) : -
Générer des tests avec l'assertion par défaut
assertNotNull
: -
Générer des tests avec des dépendances mockées :
Si vous souhaitez mocker des dépendances dans vos tests, utilisez l'option
--mock
: -
Activer les tests de performance :
Pour activer les tests de performance, utilisez l'option
--performance=true
:
Options disponibles
--directory
: Le répertoire des classes à explorer (par défautController
).--response
: La réponse attendue pour les tests générés (par défautnull
).--assertion
: Le type d'assertion à utiliser pour les tests (par défautassertNotNull
).--mock
: Les dépendances à mocker (par exempleApp\\Services\\SomeService
).--performance
: Activer les tests de performance (true
/false
).
Structure des tests générés
Les tests générés seront enregistrés dans le répertoire tests/Unit/
et auront des noms basés sur les classes que vous avez annotées avec @Testable
. Par exemple, si vous avez une classe SomeService
, le test sera généré sous le nom SomeServiceTest.php
.
Chaque méthode annotée avec @Testable
générera un test avec la structure suivante :
Limitations et À venir
- Ce package génère des tests de base pour des méthodes simples. Les tests complexes, notamment ceux qui nécessitent une logique plus avancée, peuvent nécessiter une personnalisation manuelle.
- La prise en charge des tests de performance est encore limitée aux tests de base sur le temps d'exécution de la méthode.
Contributions
Les contributions sont les bienvenues ! Si vous souhaitez ajouter des fonctionnalités ou corriger des bugs, veuillez ouvrir une pull request sur GitHub.
Licence
Ce package est sous licence MIT. Consultez le fichier LICENSE pour plus de détails.