您好,登錄后才能下訂單哦!
小編給大家分享一下yii怎樣寫單元測試,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
單元測試
單元測試位于tests/unit目錄中,應(yīng)該包含所有類型的單元和集成測試。
每個測試用例都擴展了Codeception\Test\Unit類,這是用于單元測試的標(biāo)準(zhǔn)Codeception格式。在Yii中開發(fā)完全隔離的單元測試非常困難,因此在每個測試用例之前都要啟動一個應(yīng)用程序。
在tests/unit.suite.yml啟用了Yii2模塊的文件中配置測試:
modules: enabled: - Yii2: part: [orm, email]
該模塊為一個測試案例啟動Yii應(yīng)用程序,并提供其他幫助程序方法來簡化測試。它只有orm和email零件,以排除需要的只是功能性的測試方法。
通過訪問$this->tester測試用例中的類,可以使用Yii2模塊的方法。因此,如果啟用了orm和email部分,則可以調(diào)用屬于這些部分的方法:
<?php // insert records in database $this->tester->haveRecord('app/model/User', ['username' => 'davert']); // check records in database $this->tester->seeRecord('app/model/User', ['username' => 'davert']); // test email was sent $this->tester->seeEmailIsSent(); // get a last sent emails $this->tester->grabLastSentEmail();
如果啟用fixtures零件,您還將獲得在測試中加載和使用夾具的方法:
<?php // load fixtures $this->tester->haveFixtures([ 'user' => [ 'class' => UserFixture::className(), // fixture data located in tests/_data/user.php 'dataFile' => codecept_data_dir() . 'user.php' ] ]); // get first user from fixtures $this->tester->grabFixture('user', 0);
如果Yii2啟用了模塊,則可以安全地Yii::$app在測試內(nèi)調(diào)用,因為在測試后將初始化并清理應(yīng)用程序。如果你想添加的輔助方法或自定義斷言為您的測試情況下,你不應(yīng)該延長Codeception\Test\Unit,但寫自己的獨立的輔助類。
看完了這篇文章,相信你對yii怎樣寫單元測試有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。