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

Wie schreibe ich Unit-Tests in Yii?

(*-*)浩
(*-*)浩Original
2019-11-05 15:04:453251Durchsuche

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]

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();

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);

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!

Stellungnahme:
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
Vorheriger Artikel:So initialisieren Sie yiiNächster Artikel:So initialisieren Sie yii