Data providers must be static.
Fixer could be risky if one is calling data provider function dynamically.
Whether to make the data providers static even if they have a dynamic class call (may introduce fatal error "using $this when not in object context", and you may have to adjust the code manually by converting dynamic calls to static ones).
Allowed types: bool
Default value: false
Default configuration.
--- Original
+++ New
<?php
class FooTest extends TestCase {
/**
* @dataProvider provideSomethingCases
*/
public function testSomething($expected, $actual) {}
- public function provideSomethingCases() {}
+ public static function provideSomethingCases() {}
}With configuration: ['force' => true].
--- Original
+++ New
<?php
class FooTest extends TestCase {
/**
* @dataProvider provideSomethingCases1
* @dataProvider provideSomethingCases2
*/
public function testSomething($expected, $actual) {}
- public function provideSomethingCases1() { $this->getData1(); }
- public function provideSomethingCases2() { self::getData2(); }
+ public static function provideSomethingCases1() { $this->getData1(); }
+ public static function provideSomethingCases2() { self::getData2(); }
}With configuration: ['force' => false].
--- Original
+++ New
<?php
class FooTest extends TestCase {
/**
* @dataProvider provideSomething1Cases
* @dataProvider provideSomething2Cases
*/
public function testSomething($expected, $actual) {}
public function provideSomething1Cases() { $this->getData1(); }
- public function provideSomething2Cases() { self::getData2(); }
+ public static function provideSomething2Cases() { self::getData2(); }
}The rule is part of the following rule sets:
@PHPUnit100Migration:risky with config:
['force' => true]@PhpCsFixer:risky with config:
['force' => true]
- Fixer class: PhpCsFixer\Fixer\PhpUnit\PhpUnitDataProviderStaticFixer
- Test class: PhpCsFixer\Tests\Fixer\PhpUnit\PhpUnitDataProviderStaticFixerTest
The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.