Est-il possible de simuler un objet de manière à fausser plusieurs implémentations d'interfaces? (Note: J'utilise « la moquerie de Padraic » https://github.com/padraic/mockery)Se moquer de plusieurs interfaces
Supposons que j'ai une classe Mysql, qui met en œuvre Db_Interface et Configurable_Interface, et que je besoin de se moquer juste pour être en mesure de tester une autre classe. Je veux créer un pseudo avec un autre nom, pas Mysql (parce qu'il pourrait changer ou disparaître dans le futur, c'est pourquoi nous utilisons des interfaces, non?), Donc je ne veux pas faire Mockery :: mock ('Mysql') . Je sais que je pourrais le créer comme Mockery :: mock ('Db_Interface') et ça passerait le contrôle instanceof Db_Interface. Mais comment puis-je faire passer la vérification de l'autre interface aussi?
@Gordon ok Heres le code:
$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
Comment est le type de la dépendance appliquée dans le TestSubject? – Gordon
Je ne peux pas faire que var_dump ($ my_mock instanceof Db_Interface) imprime 'true'. C'est tout ce dont j'ai besoin – HappyDeveloper
@Happy pouvez-vous s'il vous plaît montrer du code. – Gordon