2014-07-08 112 views
0

PHPUnit的手冊這樣說:如何擴展PHPUnit?

「編寫自定義的斷言和工具方法PHPUnit_Framework_TestCase在抽象子 和 得到你的測試用例類,類這是擴展PHPUnit的最簡單的方法之一。 「

所以我想我會做這樣的事情:

class MyTestCase extends PHPUnit_Framework_TestCase { 

    // new methods go here 

} 

然後,我會從中得到從這個類我自己的測試案例。但問題是我在哪裏放這個代碼?我的意思是,在我的測試目錄中的哪個文件?

如果我把它放在它自己的文件中,或者在任何特定測試文件的開始處,那麼,因爲我不知道測試將運行的順序,所以我不能確定類定義將會包括在需要之前。

您曾經能夠定義一個引導程序文件,它可以在任何測試之前運行,用於執行初始設置,但是此功能已從最新版本的PHPUnit中刪除。 PHPUnit手冊沒有解釋爲什麼,但它確實表示在測試之間共享夾具是不好的做法,所以也許該特徵被移除以阻止共享夾具的誘惑。

我現在唯一能想到的就是在我的所有測試文件的頂部放置一個include_once() - 基本上手動重新創建已棄用的引導程序功能,但是卻以更容易出錯的方式進行。

回答

0

你曾經是能夠確定這將之前的任何測試運行的引導文件,做初始設置,不過這個功能已經從PHPUnit的最近版本中刪除。

這是錯誤的。我不知道你從哪裏得到的。引導程序文件的功能尚未從代碼或文檔中刪除。

+0

我從手冊中獲得:http://phpunit.de/manual/current/en/appendixes.configuration.html自舉行已被註釋掉。當我嘗試使用bootstrap選項並且它不起作用時,我發現了這一點。 –

+0

我不認爲這是刪除的有效證據。該列表包含在XML屬性對應於命令行選項的狀態中。而'--bootstrap'命令行尚未被刪除。 – Sven

+0

此外,註釋引導程序屬性已添加到2014-01-17的4.1文檔中,因爲以前的版本也包含它。包含註釋引導屬性的第一個版本是3.5,起源於2011年左右。 – Sven