Maison  >  Article  >  cadre php  >  Comment écrire des tests unitaires dans Yii

Comment écrire des tests unitaires dans Yii

(*-*)浩
(*-*)浩original
2019-11-05 15:04:453251parcourir

Tests unitaires

Les tests unitaires se trouvent dans le répertoire tests/unit et doivent contenir tous les types de tests unitaires et d'intégration.

Comment écrire des tests unitaires dans Yii

Chaque cas de test étend la classe CodeceptionTestUnit, qui est le format Codeception standard pour les tests unitaires. Il est très difficile de développer des tests unitaires entièrement isolés dans Yii, c'est pourquoi une application est lancée avant chaque scénario de test. (Apprentissage recommandé : Tutoriel Yii )

Dans le tests/unit.suite.yml activé dans le fichier du test de configuration du module yii2 :

modules:
    enabled:
      - Yii2:
            part: [orm, email]

this le module est le module est le module est le module est le module est le module est le module est le module est le module est le module est le module est le module tel quel Un scénario de test lance l'application Yii et fournit des méthodes d'assistance supplémentaires pour simplifier essai. Il ne contient que des parties ORM et e-mail pour exclure le besoin de méthodes de test fonctionnelles uniquement.

Les méthodes du module Yii2 peuvent être utilisées en accédant à la classe $this->tester dans le scénario de test. Ainsi si les parties orm et email sont activées, vous pouvez appeler des méthodes appartenant à ces parties :

<?php
// insert records in database
$this->tester->haveRecord(&#39;app/model/User&#39;, [&#39;username&#39; => &#39;davert&#39;]);
// check records in database
$this->tester->seeRecord(&#39;app/model/User&#39;, [&#39;username&#39; => &#39;davert&#39;]);
// test email was sent
$this->tester->seeEmailIsSent();
// get a last sent emails
$this->tester->grabLastSentEmail();

Si la partie luminaires est activée, vous obtiendrez également des méthodes pour charger et utiliser les luminaires dans vos tests :

<?php
// load fixtures
$this->tester->haveFixtures([
    &#39;user&#39; => [
        &#39;class&#39; => UserFixture::className(),
        // fixture data located in tests/_data/user.php
        &#39;dataFile&#39; => codecept_data_dir() . &#39;user.php&#39;
    ]
]);
// get first user from fixtures
$this->tester->grabFixture(&#39;user&#39;, 0);

Si le module Yii2 est activé, il est sûr d'appeler Yii::$app dans un test car l'application sera initialisée et nettoyée après le test. Si vous souhaitez ajouter des méthodes d'assistance ou des assertions personnalisées pour vos cas de test, vous ne devez pas étendre CodeceptionTestUnit, mais écrire votre propre classe d'assistance distincte.

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
Article précédent:Comment initialiser yiiArticle suivant:Comment initialiser yii