Я не уверен, что я делаю неправильно /. Я получаю ошибку:Стыковые интерфейсы в модуле PHP
Configuration read from /vagrant/freya-component-pagebuilder/phpunit.xml
....E........
Time: 50 seconds, Memory: 83.25Mb
There was 1 error:
1) PageSectionTest::testBuildSectionsNotNull
Argument 3 passed to Freya\Component\PageBuilder\PageSection\PageSection::buildSections() must be an instance of Freya\Component\PageBuilder\FieldHandler\IFieldHandler, instance of Mock_IFieldHandler_4f9ceb0e given, called in /vagrant/freya-component
-pagebuilder/tests/PageSectionTest.php on line 58 and defined
/vagrant/freya-component-pagebuilder/Freya/Component/PageBuilder/PageSection/PageSection.php:24
/vagrant/freya-component-pagebuilder/tests/PageSectionTest.php:58
/usr/local/bin/vendor/phpunit/phpunit/src/TextUI/Command.php:151
/usr/local/bin/vendor/phpunit/phpunit/src/TextUI/Command.php:103
FAILURES!
Tests: 13, Assertions: 4, Errors: 1.
Generating code coverage report in HTML format ... done
я имею в виду, кажется довольно очевидным, но мой тест насмехаясь интерфейс ....
public function testBuildSectionsNotNull() {
$stub = $this->getMockBuilder('IFieldHandler')
->setMethods(array('getFields'))
->getMock();
$stub->method('getFields')
->with(111)
->willReturn(array('something' => 'something else'));
$sections = $this->pageSectionClassInstance->buildSections($this->parentPage, 'child_pages', $stub, '_default_partial');
$this->assertNotEmpty($section);
}
Он знает, что это существует, потому что:
use Freya\Component\PageBuilder\PageSection\PageSection;
use Freya\Component\PageBuilder\FieldHandler\IFieldHandler;
use Freya\Factory\Pattern;
class PageSectionTest extends WP_UnitTestCase { ... }
I попытался насмехаться над классом, который реализует интерфейс, но это тоже не сработало. Аргументом три является $stub
. Так что мой вопрос: Почему это не работает? Я издеваюсь над интерфейсом ... Класс существует и виден.