繁体   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