Skip to content

Latest commit

 

History

History
124 lines (82 loc) · 3.18 KB

php_unit_mock.rst

File metadata and controls

124 lines (82 loc) · 3.18 KB

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' and 'newest'

Default value: 'newest'

Examples

Example #1

Default configuration.

--- Original
+++ New
 <?php
 final class MyTest extends \PHPUnit_Framework_TestCase
 {
     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
 <?php
 final class MyTest extends \PHPUnit_Framework_TestCase
 {
     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:

References

The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.