[英]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.