title: Can I mock an interface implementation with PHPUnit?
body: <p>I've got an interface I'd like to mock. I know I can mock an implementation of that interface, but is there a way to just mock the interface?</p>
  
  <pre><code>&lt;?php
  require __DIR__ . '/../vendor/autoload.php';
  
  use My\Http\IClient as IHttpClient;  // The interface
  use My\SomethingElse\Client as SomethingElseClient;
  
  
  class SomethingElseClientTest extends PHPUnit_Framework_TestCase {
    public function testPost() {
      $url = 'some_url';
      $http_client = $this-&gt;getMockBuilder('Cpm\Http\IClient');
      $something_else = new SomethingElseClient($http_client, $url);
    }
  }
  </code></pre>
  
  <p>What I get here is:</p>
  
  <pre><code>1) SomethingElseTest::testPost
  Argument 1 passed to Cpm\SomethingElse\Client::__construct() must be an instance of
  My\Http\IClient, instance of PHPUnit_Framework_MockObject_MockBuilder given, called in
  $PATH_TO_PHP_TEST_FILE on line $NUMBER and defined
  </code></pre>
  
  <p>Interestingly, <a href="https://stackoverflow.com/questions/3250503/phpunit-mocked-interfaces-and-instanceof">PHPUnit, mocked interfaces, and instanceof</a> would suggest this might work.</p>