Возможно ли смоделировать объект так, чтобы он имитировал реализацию нескольких интерфейсов?
(Примечание: я использую «издевательство над падраиком» https://github.com/padraic/mockery)
Предположим, у меня есть класс Mysql, который реализует Db_Interface и Configurable_Interface, и который мне нужно смоделировать, чтобы иметь возможность протестировать другой класс. Я хочу создать макет с другим именем, не Mysql (потому что он может измениться или исчезнуть в будущем, поэтому мы используем интерфейсы, верно?), Поэтому я не хочу делать Mockery :: mock ('Mysql') .
Я знаю, что могу создать его как Mockery :: mock ('Db_Interface'), и он пройдет проверку экземпляра Db_Interface. Но как я могу сделать так, чтобы он прошел проверку и для другого интерфейса?
@ Гордон
хорошо, вот код:
$m = Mockery::mock('Configurable_Interface');
var_dump($m instanceof Configurable_Interface); // true
var_dump($m instanceof Db_Interface); // false of course, since I don't know how to make a mock implement 2 interfaces