Cet article explore Sylius, une application de commerce électronique basée sur Symfony, et son approche robuste du développement axé sur les tests (TDD), atteignant une couverture de code à 100% - un exploit remarquable pour une application PHP de son échelle. Nous vous guiderons dans la configuration d'un environnement de test Sylius, couvrant la création et la configuration de la base de données pour Behat, Phpunit et PhpSpec.
L'article souligne l'importance du développement axé sur le comportement (BDD) et du TDD dans Sylius, démontrant comment ces méthodologies améliorent la qualité et la maintenabilité du code. Des exemples pratiques illustrent la modification des fonctionnalités existantes et l'ajout de nouvelles fonctionnalités à l'aide d'une approche de test.
Sylius exploite le cadre Symfony, et son code réside dans un dossier src
, en gardant votre code d'application personnalisé séparé dans le dossier app
. Pour commencer TDD, nous configurons d'abord la base de données de test:
php bin/console doctrine:database:create --env=test php bin/console doctrine:schema:create --env=test
Sylius propose divers types de tests:
PHPUNIT: Sylius comprend de nombreux tests fonctionnels PHPUNIT. La configuration (phpunit.xml.dist
) est située dans la racine Web, avec des tests unitaires dans le dossier tests
. Les tests d'exécution (par exemple, tests/Controller/CountryApiTest.php
) impliquent:
./vendor/phpunit/phpunit/phpunit -c ./phpunit.xml.dist tests/Controller/CountryApiTest
PHPSCEC: Pour le développement basé sur le comportement (BDD), Sylius utilise PHPSCEC. Les spécifications sont écrites dans des classes PHP, souvent regroupées en suites. Exécution de phpSpec (par exemple, src/Sylius/Component/Order/spec/Model/OrderItemSpec.php
):
./bin/phpspec run -fpretty --verbose src/Sylius/Component/Order/spec/Model/OrderItemSpec.php
behat: behat facilite StoryBDD, en utilisant la syntaxe de Gherkin pour décrire le comportement de l'application dans les fichiers de fonctionnalités. Sylius fournit un dossier behat.yml.dist
et un features
. Exécution d'un test de Behat (par exemple, features/order/managing_orders/browsing_orders.feature
):
./bin/behat features/order/managing_orders/browsing_orders.feature
TDD en action: Modification de la page de liste des ordres
illustrons TDD en modifiant l'icône de la page des commandes. Nous suivrons ces étapes:
Ajouter une fonctionnalité: Créer features/order/managing_orders/browsing_orders_with_visual_display.feature
.
Ajouter un objet de page: Créer src/Sylius/Behat/Page/Admin/Order/OrderPageInterface.php
et src/Sylius/Behat/Page/Admin/Order/OrderPage.php
. Enregistrez l'objet page dans etc/behat/services/pages.xml
.
Ajouter un contexte: Ajouter un contexte de behat dans src/Sylius/Behat/Resources/config/services/contexts/ui.xml
et créer src/Sylius/Behat/Context/Ui/Admin/ViewingPageIconContext.php
.
En écrivant d'abord des tests, puis en apportant les modifications du code pour réussir ces tests, nous assurons une application fiable et robuste. Cet article fournit une base pour la compréhension et la mise en œuvre du TDD dans le cadre du commerce électronique Sylius.
L'article conclut en mettant l'accent sur l'efficacité du TDD pour créer des logiciels fiables et encourage une approche de test. Une section FAQ clarifie encore les concepts de Sylius et TDD.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!