Fork me on GitHub
a Sensio Labs Product

Remote Void (v2.18.1) edition

Rule php_unit_mock

Usages of ->getMock and ->getMockWithoutInvokingTheOriginalConstructor methods MUST be replaced by ->createMock or ->createPartialMock methods.

Warning

Using this rule is risky.

Risky when PHPUnit classes are overridden or not accessible, or when project has PHPUnit incompatibilities.

Configuration

target

Target version of PHPUnit.

Allowed values: '5.4', '5.5', 'newest'

Default value: 'newest'

Examples

Example #1

Default configuration.

--- Original
+++ New
@@ -3,9 +3,9 @@
 {
     public function testFoo()
     {
-        $mock = $this->getMockWithoutInvokingTheOriginalConstructor("Foo");
-        $mock1 = $this->getMock("Foo");
-        $mock1 = $this->getMock("Bar", ["aaa"]);
+        $mock = $this->createMock("Foo");
+        $mock1 = $this->createMock("Foo");
+        $mock1 = $this->createPartialMock("Bar", ["aaa"]);
         $mock1 = $this->getMock("Baz", ["aaa"], ["argument"]); // version with more than 2 params is not supported
     }
 }

Example #2

With configuration: ['target' => '5.4'].

--- Original
+++ New
@@ -3,7 +3,7 @@
 {
     public function testFoo()
     {
-        $mock1 = $this->getMock("Foo");
+        $mock1 = $this->createMock("Foo");
         $mock1 = $this->getMock("Bar", ["aaa"]); // version with multiple params is not supported
     }
 }

Rule sets

The rule is part of the following rule sets:

@PHPUnit54Migration:risky

Using the @PHPUnit54Migration:risky rule set will enable the php_unit_mock rule with the config below:

['target' => '5.4']

@PHPUnit55Migration:risky

Using the @PHPUnit55Migration:risky rule set will enable the php_unit_mock rule with the config below:

['target' => '5.5']

@PHPUnit56Migration:risky

Using the @PHPUnit56Migration:risky rule set will enable the php_unit_mock rule with the config below:

['target' => '5.5']

@PHPUnit57Migration:risky

Using the @PHPUnit57Migration:risky rule set will enable the php_unit_mock rule with the config below:

['target' => '5.5']

@PHPUnit60Migration:risky

Using the @PHPUnit60Migration:risky rule set will enable the php_unit_mock rule with the config below:

['target' => '5.5']

@PHPUnit75Migration:risky

Using the @PHPUnit75Migration:risky rule set will enable the php_unit_mock rule with the config below:

['target' => '5.5']

@PHPUnit84Migration:risky

Using the @PHPUnit84Migration:risky rule set will enable the php_unit_mock rule with the config below:

['target' => '5.5']

The logo is © 2010-2014 Sensio Labs