有没有可能以一种方式模拟一个对象,使其虚假多个接口实现? (注:我正在使用“padraic's mockery” https://github.com/padraic/mockery)
假设我有一个类Mysql,它实现了Db_Interface和Configurable_Interface,并且我需要模拟它只是为了能够测试另一个类。我想创建一个带有另一个名称的模拟对象,而不是Mysql(因为它可能会在未来更改或消失,这就是我们使用接口的原因,对吧?),所以我不想做Mockery :: mock('Mysql')。
我知道我可以像Mockery::mock('Db_Interface')那样创建它,并且它将通过instanceof Db_Interface检查。但是如何使它通过其他接口的检查呢?
@Gordon 好的,这是代码:
$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