簡體   English   中英

PHPUnit setUp用於使用dataProvider進行單獨測試

[英]PHPUnit setUp to run for an individual test with dataProvider

我有一個帶有dataProvider fooProvider()的PHPUnit測試testFoo() fooProvider() testFoo()的開頭我正在使用Runkit來重新定義一個方法,這樣我就可以在該方法返回時重新定義它返回時測試預期結果。 但是,重新定義該方法需要一點時間,因此我希望它只能在此測試中發生一次。

PHPUnit框架是否提供了一些功能來指定我想在testFoo()運行之前運行一次的代碼,而不是fooProvider()返回的每個元素運行一次,或者套件中每次測試運行一次(與setUp() )?

使用靜態私有屬性來標記方法已重新定義。 您需要它是靜態的,因為測試類是針對dataProvider提供的每種情況實例化的。

class FooTest extends PHPUnit_Framework_TestCase
{
    private static $redefined = false;

    /**
     * @dataProvider fooProvider
     */
    public function testFoo()
    {
        if (! self::$redefined) {

            // redefinition code goes here

            self::$redefined = true;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM