2017-08-14 127 views
0

我是wordpress開發新手,我有自己的自定義wordpress插件,允許管理員點擊多個作者並將所有meta標籤保存在數據庫中。它工作正常。但我想爲此生成測試用例。我安裝了phpunit,但我不知道如何編寫測試用例。Wordpress插件+ phpunit測試

public function testOne() 
{ 
    $this->factory->post->create(); 
} 

我試過這個,但不明白它是如何工作的。

+0

你可以從這裏開始(https://phpunit.de/manual/current/en/index.html) – xmike

回答

1

這並不難,但它絕對不是微不足道的。你需要建立一個測試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

現在我其實可以修復的單元測試發現:)的錯誤。

0

首先,您應該使用用於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/