首頁 > php框架 > YII > 主體

yii如何寫單元測試

(*-*)浩
發布: 2019-11-05 15:04:45
原創
3267 人瀏覽過

單元測試

單元測試位於tests/unit目錄中,應該包含所有類型的單元和整合測試。

yii如何寫單元測試

每個測試案例都擴展了Codeception\Test\Unit類,這是用於單元測試的標準Codeception格式。在Yii中開發完全隔離的單元測試非常困難,因此在每個測試案例之前都要啟動一個應用程式。                   (推薦學習:yii教程

在tests/unit.suite.yml啟用了Yii2模塊的文件中配置測試:

modules:
    enabled:
      - Yii2:
            part: [orm, email]
登入後複製

該模塊為一個測試案例啟動Yii應用程序,並提供其他幫助程序方法來簡化測試。它只有orm和email零件,以排除需要的只是功能性的測試方法。

透過存取$this->tester測試用例中的類,可以使用Yii2模組的方法。因此,如果啟用了orm和email部分,則可以呼叫屬於這些部分的方法:

<?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();
登入後複製

如果啟用fixtures零件,您還將獲得在測試中載入和使用夾具的方法:

<?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);
登入後複製

如果Yii2啟用了模組,則可以安全地Yii::$app在測試內調用,因為在測試後將初始化並清理應用程式。如果你想添加的輔助方法或自訂斷言為您的測試情況下,你不應該延長Codeception\Test\Unit,但寫自己的獨立的輔助類別。

以上是yii如何寫單元測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
yii
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板