Maison  >  Article  >  développement back-end  >  Comment utiliser Codeception avec CakePHP ?

Comment utiliser Codeception avec CakePHP ?

WBOY
WBOYoriginal
2023-06-04 08:11:091156parcourir

CakePHP est un framework d'application Web open source basé sur PHP qui peut aider les développeurs à créer rapidement des applications Web. Codeception est un framework de test puissant qui peut aider les développeurs à effectuer des tests automatisés. Cet article explique comment utiliser Codeception pour les tests dans CakePHP.

  1. Installer Codeception

Tout d'abord, vous devez installer Codeception. Il peut être installé via Composer, exécutez la commande suivante :

composer require --dev codeception/codeception

Si vous avez besoin d'autres modules, vous pouvez l'installer comme suit :

composer require --dev codeception/module-webdriver
composer require --dev codeception/module-db
composer require --dev codeception/module-asserts
  1. Initialize Codeception# 🎜🎜#
Après avoir installé Codeception, vous devez exécuter la commande suivante dans le répertoire racine de l'application CakePHP pour initialiser Codeception :

vendor/bin/codecept init

Après avoir exécuté la commande, il y aura être une série de questions interactives qui nécessitent une réponse. Par exemple, vous devez sélectionner le type de test, l'emplacement de stockage du fichier de test, etc.

    Writing Tests
Codeception propose différents niveaux de tests. Dans CakePHP, vous pouvez utiliser des tests fonctionnels pour tester si l'application se comporte comme prévu. Les tests fonctionnels simulent l'interaction de l'utilisateur avec l'application, comme remplir des formulaires, cliquer sur des liens, etc. Voici un exemple de test :

<?php 
$I = new FunctionalTester($scenario);
$I->wantTo('ensure that login works');
$I->amOnPage('/');
$I->click('Login');
$I->seeCurrentUrlEquals('/users/login');
$I->fillField('username', 'testuser');
$I->fillField('password', 'testpass');
$I->click('Login');
$I->seeCurrentUrlEquals('/dashboard');
$I->see('Welcome, testuser');

L'exemple de test ci-dessus tente de simuler la connexion de l'utilisateur et de vérifier si elle réussit. Simulez le comportement de l'utilisateur via $I->amOnPage() et $I->click(), puis vérifiez s'il répond aux attentes via $I->see() et $I->seeCurrentUrlEquals().

    Exécuter le test
Après avoir écrit le test, vous pouvez utiliser la commande suivante pour exécuter le test :

vendor/bin/codecept run
#🎜 🎜#Si vous souhaitez exécuter Pour spécifier un test, vous pouvez utiliser la commande suivante :

vendor/bin/codecept run functional MyFirstTestCest

Parmi elles, MyFirstTestCest est le nom du fichier de test. Si vous souhaitez uniquement exécuter une certaine méthode de test, vous pouvez utiliser la commande suivante :

vendor/bin/codecept run functional MyFirstTestCest:testLogin

où testLogin est le nom de la méthode de test.

Codeception et PHPUnit
  1. CakePHP utilise PHPUnit par défaut pour les tests unitaires. Codeception est également basé sur PHPUnit, il peut donc également être considéré comme une méthode de test. La beauté de Codeception est qu’il facilite l’écriture, l’exécution et la gestion des tests.

Si vous devez utiliser PHPUnit et Codeception en même temps dans CakePHP, vous pouvez ajouter le code suivant au fichier phpunit.xml pour exécuter le test Codeception :

<testsuites>
    <testsuite name="cake">
        <directory>./tests/TestCase/</directory>
        <directory>./vendor/codeception/codeception/tests/unit/</directory>
    </testsuite>
</testsuites>

Le code ci-dessus exécutera PHPUnit Lors des tests, il inclut également l'exécution de tests Codeception.

Résumé

Cet article présente comment utiliser Codeception pour tester dans CakePHP. Codeception fournit des fonctions de test riches, telles que les tests fonctionnels, les tests de bout en bout, les tests d'API, etc., qui peuvent nous aider à tester les applications de manière plus complète. Dans le même temps, Codeception est simple à utiliser et facile à démarrer, ce qui peut grandement améliorer l'efficacité des tests.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn