recherche
Maisondéveloppement back-endtutoriel phpYii Framework Official Guide Series Supplément 40 - Tests : tests fonctionnels



Avant de lire ce chapitre, il est fortement recommandé de lire la documentation Selenium et la documentation PHPUnit. Nous donnons ci-dessous un bref aperçu de l'écriture fonctionnelle. tests dans le framework Yii Principes de base :

  • Comme les tests unitaires, les tests fonctionnels sont écrits sous la forme de classes XyzTest qui héritent de CWebTestCase, où Xyz représente la classe testée depuis. PHPUnit_Extensions_SeleniumTestCase est la classe CWebTestCase Ancestor, nous pouvons hériter de toutes les méthodes de cette classe

  • La classe de test fonctionnel est enregistrée dans un fichier PHP sous la forme de XyzTest.php Pour plus de commodité, test fonctionnel. les fichiers sont généralement enregistrés dans protected/tests/functional文件夹下.

  • la classe de test contient principalement une série de méthodes de test nommées testAbc, où Abc est généralement le nom de la fonctionnalité à tester, par exemple Par exemple, vous souhaitez tester la fonction de connexion de l'utilisateur, nous pouvons avoir une méthode de test nommée testLogin的测试方法.

  • qui contient une série d'instructions de commande pour tester l'interaction entre Selenium RC et le Web application. Il contient également des instructions d'assertion utilisées pour confirmer la réponse que nous attendons de l'application Web

Avant de décrire comment écrire un test fonctionnel, jetons un œil au fichier WebTestCase.php. généré automatiquement par la commande yiic webapp. Ce fichier définit la classe de base pour toutes les classes de tests fonctionnels WebTestCase:

define('TEST_BASE_URL','http://localhost/yii/demos/blog/index-test.php/');

class WebTestCase extends CWebTestCase
{
    /**
     * Sets up before each test method runs.
     * This mainly sets the base URL for the test application.
     */
    protected function setUp()
    {
        parent::setUp();
        $this->setBrowserUrl(TEST_BASE_URL);
    }

    ......
}

WebTestCase définit principalement l'URL racine de la page de test, qui est suivi de Dans la méthode de test, nous pouvons utiliser des URL relatives pour spécifier la page à tester.

Nous devons également noter que dans l'URL racine du test, index-test.php est utilisé comme script d'entrée au lieu de index.php. La seule différence entre les deux est que le premier utilise test.php comme application. fichier de configuration, puis L'auteur utilise main.php.

Maintenant, nous commençons à parler de la façon de tester la fonctionnalité d'affichage d'un article dans la démo du blog. Écrivez d'abord la classe de test telle qu'elle est écrite. La classe test hérite de ce que nous avons dit ci-dessus. La classe de base WebTestCase mentionnée ci-dessus :

class PostTest extends WebTestCase
{
    public $fixtures=array(
        'posts'=>'Post',
    );

    public function testShow()
    {
        $this->open('post/1');
        // verify the sample post title exists
        $this->assertTextPresent($this->posts['sample1']['title']);
        // verify comment form exists
        $this->assertTextPresent('Leave a Comment');
    }

    ......
}

Tout comme l'écriture de tests unitaires, nous déclarons d'abord les états spécifiques ( luminaires) utilisé par ce test. Ici, nous spécifions l'utilisation du luminaire Post Dans la méthode de test testShow, nous utilisons d'abord Selenium RC pour ouvrir l'URL post/1. L'URL est associée à l'URL racine dans la classe de base (c'est-à-dire http://www.php.cn/ ). Ensuite, nous vérifions si le titre de la publication sample1 peut être trouvé dans la page actuelle. Nous pouvons également vérifier si cette page contient le texte <.>.Leave a Comment

Astuce : avant d'exécuter des tests fonctionnels, le serveur Selenium-RC doit d'abord être démarré. Cela peut être réalisé en exécutant la commande <.> dans le répertoire d'installation de votre serveur Selenium. java -jar selenium-server.jar

Ce qui précède est le contenu du supplément 40 de la série de guides officiels du Yii Framework - Tests : tests fonctionnels. Veuillez prêter attention au contenu plus associé à PHP chinois. site Web (www.php.cn) !


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
Comment modifiez-vous les données stockées dans une session PHP?Comment modifiez-vous les données stockées dans une session PHP?Apr 27, 2025 am 12:23 AM

TomodifyDatainaphPSession, startTheSessionwithSession_start (), puis utilisez $ _sessiontoset, modifiez, orremovevariables.1) startTheSession.2) setorModifySessionVariblesusing $ _Session.3) retireVariableswithunset (). 4) ClearAllVariblesWithSession_unset (). 5).

Donnez un exemple de stockage d'un tableau dans une session PHP.Donnez un exemple de stockage d'un tableau dans une session PHP.Apr 27, 2025 am 12:20 AM

Les tableaux peuvent être stockés en séances PHP. 1. Démarrez la session et utilisez session_start (). 2. Créez un tableau et stockez-le en $ _SESSION. 3. Récupérez le tableau via $ _SESSION. 4. Optimiser les données de session pour améliorer les performances.

Comment fonctionne la collecte des ordures pour les séances PHP?Comment fonctionne la collecte des ordures pour les séances PHP?Apr 27, 2025 am 12:19 AM

La collecte de déchets de session PHP est déclenchée par un mécanisme de probabilité pour nettoyer les données de session expirées. 1) définir le cycle de vie de probabilité de déclenchement et de session dans le fichier de configuration; 2) Vous pouvez utiliser des tâches CRON pour optimiser les applications de haute charge; 3) Vous devez équilibrer la fréquence et les performances de collecte des ordures pour éviter la perte de données.

Comment pouvez-vous tracer l'activité de session en php?Comment pouvez-vous tracer l'activité de session en php?Apr 27, 2025 am 12:10 AM

Le suivi des activités de session utilisateur dans PHP est implémenté par la gestion de session. 1) Utilisez session_start () pour démarrer la session. 2) Stocker et accéder aux données via le tableau $ _SESSION. 3) Appelez session_destroy () pour mettre fin à la session. Le suivi des sessions est utilisé pour l'analyse du comportement des utilisateurs, la surveillance de la sécurité et l'optimisation des performances.

Comment pouvez-vous utiliser une base de données pour stocker les données de session PHP?Comment pouvez-vous utiliser une base de données pour stocker les données de session PHP?Apr 27, 2025 am 12:02 AM

L'utilisation de bases de données pour stocker les données de session PHP peut améliorer les performances et l'évolutivité. 1) Configurez MySQL pour stocker les données de session: configurez le processeur de session dans PHP.ini ou PHP Code. 2) Implémentez le processeur de session personnalisé: Définissez Open, Fermer, Lire, Écrire et d'autres fonctions pour interagir avec la base de données. 3) Optimisation et meilleures pratiques: utilisez l'indexation, la mise en cache, la compression des données et le stockage distribué pour améliorer les performances.

Expliquez le concept d'une session PHP en termes simples.Expliquez le concept d'une session PHP en termes simples.Apr 26, 2025 am 12:09 AM

PhpSessionsStrackUserDataacrossMultiplepageRequestSusingauniqueIdStoredInacookie.Here'showtomanageThememeChectively: 1) startAsessionwithSession_start () etstoredatain $ _session.2) RegenerateTheSessionidaFterloginWithSession_Regenereate_id (true) TopReventiSi

Comment parcourez-vous toutes les valeurs stockées dans une session PHP?Comment parcourez-vous toutes les valeurs stockées dans une session PHP?Apr 26, 2025 am 12:06 AM

En PHP, l'itération des données de session peut être obtenue via les étapes suivantes: 1. Démarrez la session à l'aide de session_start (). 2. Ilaster à travers la boucle FOREACH à travers toutes les paires de valeurs clés dans le tableau $ _SESSION. 3. Lors du traitement des structures de données complexes, utilisez des fonctions is_array () ou is_object () et utilisez print_r () pour produire des informations détaillées. 4. Lors de l'optimisation de la traversée, la pagination peut être utilisée pour éviter de traiter de grandes quantités de données en même temps. Cela vous aidera à gérer et à utiliser les données de session PHP plus efficacement dans votre projet réel.

Expliquez comment utiliser les sessions pour l'authentification des utilisateurs.Expliquez comment utiliser les sessions pour l'authentification des utilisateurs.Apr 26, 2025 am 12:04 AM

La session réalise l'authentification des utilisateurs via le mécanisme de gestion de l'état côté serveur. 1) Création de session et génération d'ID unique, 2) Les ID sont passés par des cookies, 3) les magasins de serveurs et accèdent aux données de session via IDS, 4) l'authentification des utilisateurs et la gestion de l'état sont réalisées, améliorant la sécurité des applications et l'expérience utilisateur.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),