Heim > PHP-Framework > YII > Wie schreibe ich Unit-Tests in Yii?

Wie schreibe ich Unit-Tests in Yii?

(*-*)浩
Freigeben: 2019-11-05 15:04:45
Original
3318 Leute haben es durchsucht

Unit-Tests

Unit-Tests befinden sich im Verzeichnis „tests/unit“ und sollten alle Arten von Unit- und Integrationstests enthalten.

Wie schreibe ich Unit-Tests in Yii?

Jeder Testfall erweitert die CodeceptionTestUnit-Klasse, das Standard-Codeception-Format für Unit-Tests. Es ist sehr schwierig, vollständig isolierte Unit-Tests in Yii zu entwickeln, daher wird vor jedem Testfall eine Anwendung gestartet. (Empfohlenes Lernen: Yii-Tutorial )

In den in der Datei des yii2-Modulkonfigurationstests aktivierten Tests/unit.suite.yml:

modules:
    enabled:
      - Yii2:
            part: [orm, email]
Nach dem Login kopieren

this Modul ist das Modul ist das Modul ist das Modul ist das Modul ist das Modul ist das Modul ist das Modul ist das Modul ist das Modul ist das Modul ist das Modul wie es ist. Ein Testfall startet die Yii-Anwendung und stellt zusätzliche Hilfsmethoden zur Vereinfachung bereit Testen. Es verfügt nur über ORM- und E-Mail-Teile, sodass keine rein funktionalen Testmethoden erforderlich sind.

Sie können die Methoden des Yii2-Moduls verwenden, indem Sie im Testfall auf die Klasse $this->tester zugreifen. Wenn also die Orm- und E-Mail-Teile aktiviert sind, können Sie Methoden aufrufen, die zu diesen Teilen gehören:

<?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();
Nach dem Login kopieren

Wenn der Fixtures-Teil aktiviert ist, erhalten Sie auch Methoden zum Laden und Verwenden von Fixtures in Ihren 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);
Nach dem Login kopieren

Wenn das Yii2-Modul aktiviert ist, ist es sicher, Yii::$app innerhalb eines Tests aufzurufen, da die Anwendung nach dem Test initialisiert und bereinigt wird. Wenn Sie Hilfsmethoden oder benutzerdefinierte Assertionen für Ihre Testfälle hinzufügen möchten, sollten Sie CodeceptionTestUnit nicht erweitern, sondern Ihre eigene separate Hilfsklasse schreiben.

Das obige ist der detaillierte Inhalt vonWie schreibe ich Unit-Tests in Yii?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
yii
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage