我想模拟validate一个接口的方法,并让所有其他接口方法存根返回null(我真的不关心它们会发生什么),但似乎没有办法轻松地做到这一点.
这就是我所拥有的:
$validator = $this
->getMockBuilder('Symfony\Component\Validator\Validator\ValidatorInterface')
->setMethods(array('validate'))
->getMock();
$validator
->expects($this->once())
->method('validate')
->willReturn(array());
$validator->validate();
Run Code Online (Sandbox Code Playgroud)
运行这个给我一个致命的错误:
类Mock_ValidatorInterface_56c4c003包含6个抽象方法,因此必须声明为abstract或实现其余方法
所以 - 我需要以某种方式告诉PHPUnit存根接口所需的其他方法.这样做的正确方法是什么?
声明所有接口的方法->setMethods().
通常,您模拟一个类,只声明某些方法->setMethods().未经模拟的方法可以回溯到被模拟的原始类的实现.
但是如果你在模拟一个接口,那么所有方法都必须由mock实现.
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |