我是wordpress開發新手,我有自己的自定義wordpress插件,允許管理員點擊多個作者並將所有meta標籤保存在數據庫中。它工作正常。但我想爲此生成測試用例。我安裝了phpunit,但我不知道如何編寫測試用例。Wordpress插件+ phpunit測試
public function testOne()
{
$this->factory->post->create();
}
我試過這個,但不明白它是如何工作的。
我是wordpress開發新手,我有自己的自定義wordpress插件,允許管理員點擊多個作者並將所有meta標籤保存在數據庫中。它工作正常。但我想爲此生成測試用例。我安裝了phpunit,但我不知道如何編寫測試用例。Wordpress插件+ phpunit測試
public function testOne()
{
$this->factory->post->create();
}
我試過這個,但不明白它是如何工作的。
這並不難,但它絕對不是微不足道的。你需要建立一個測試WordPress數據庫只是爲PHPUnit的運行測試
我發現真正有用的這些指南: https://codesymphony.co/writing-wordpress-plugin-unit-tests/
https://engineering.hmn.md/guides/writing-code/writing-tests/
爲了獲取PHPUnit的需要設置文件一個WordPress的測試環境,我必須得到一個新的WordPress目錄:
https://core.trac.wordpress.org/browser/trunk?order=name
而我對陷入困境一會兒用的MySQLi儘快未按照我的單元測試開始,但看完這個與設置改變固定它:
https://core.trac.wordpress.org/ticket/39327
現在我其實可以修復的單元測試發現:)的錯誤。
首先,您應該使用用於Codeception的WordPress模塊,其中包括PHPunit WPTestCase和許多其他工具。
有兩種基本方法在WordPress測試是這樣的:
您可以用瀏覽器進行測試。這被稱爲驗收測試。您列出了證明您正在測試的概念的所有操作,然後運行瀏覽器[或瀏覽器模擬器]逐步執行任務。您可以查看數據庫以瞭解您期望看到的結果,並證明結果正確。在你的情況下,你可能想要設置一些帖子,點擊多個作者,然後檢查數據庫中你想要的元標記。它看起來是這樣的:
$I = /*am a */ new AcceptanceTester($scenario);
$I->loginAsAdmin();
$I->amOnPage("/wp-admin/post-new.php");
$I->fillField('#content', "lorum ipsum");
$I->click('#publish');
另一種方法是封裝在一個OOP類的動作,並使用WPUnit測試工具進行測試。 Codeception使用WordPress核心團隊使用的同一個PHPUnit庫,以及一堆其他工具。 WPUnit方法將數據庫加載到內存中,並可以執行諸如安裝虛擬帖子等插件的工作。所以你的情況,你可能有一個類:
class SystemActionSaveMetaTags{
public function doSaveMetaTags()
}
你可能有一個名爲test
itShouldSaveMetaTags(){
$id = wp_insert_post();
$SystemActionSaveMetaTags = new SystemActionSaveMetaTags;
$SystemActionSaveMetaTags->doSaveMetaTags($id);
$this->assertTrue($this->checkForCorrectMetaTags($id));
}
這裏是關於主題的教程,因爲它涉及到WordPress: https://wp-bdd.com/wp-codeception-tutorial/
你可以從這裏開始(https://phpunit.de/manual/current/en/index.html) – xmike