Иногда в моем коде, я проверю, чтобы видеть, реализует ли конкретный объект интерфейс:
if ($instance instanceof Interface) {};
Однако создавая насмешки для упомянутого интерфейса в PHPUnit, я, может казаться, не прохожу тот тест.
// class name is Mock_Interface_431469d7, does not pass above check
$instance = $this->getMock('Interface');
Я понимаю, что, называя класс Интерфейс отличается от Интерфейса реализации класса, но я не уверен, как получить соглашение с этим.
Я вынужден дразнить реальный класс, который реализует Интерфейс? Разве это не победило бы цель использовать интерфейс для мобильности?
Спасибо
У меня это работает:
$mock = $this->getMock('TestInterface');
$this->assertTrue($mock instanceof TestInterface);
Может быть, это опечатка или, может быть, $ instance не то, что вы думаете?