Mam interfejs, który chciałbym udawać. Wiem, że mogę kpić z implementacji tego interfejsu, ale czy istnieje sposób, aby po prostu kpić z interfejsu?Czy mogę kpić z implementacji interfejsu za pomocą PHPUnit?
<?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->getMockBuilder('Cpm\Http\IClient');
$something_else = new SomethingElseClient($http_client, $url);
}
}
Co mam tutaj jest:
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
ciekawe, PHPUnit, mocked interfaces, and instanceof sugerowałaby to może działać.
Masz misread że drugie pytanie, to jest za pomocą '-> getMock()' nie '-> getMockBuilder()', jak to zrobić - i to jak ty również znalazłeś odpowiedź na twój problem. Jednak IIRC również istnieje duplikat twojego pytania, ale nie mogę go teraz znaleźć. – hakre
Interesujące. Nie mogłem znaleźć tego w moich poszukiwaniach. Dziękuję za edycję. –
możesz również zaakceptować poniższą odpowiedź, aby odpowiedzieć na Twoje pytanie. – hakre