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