PHPUnit 使用闭包进行测试
这出现了尝试为调用具有闭包的模拟方法的类的方法编写测试。您将如何验证所调用的闭包?
我知道您将能够断言该参数是 的实例。但是,您将如何检查有关关闭的任何内容?Closure
例如,您将如何验证传递的函数:
class SUT {
public function foo($bar) {
$someFunction = function() { echo "I am an anonymous function"; };
$bar->baz($someFunction);
}
}
class SUTTest extends PHPUnit_Framework_TestCase {
public function testFoo() {
$mockBar = $this->getMockBuilder('Bar')
->setMethods(array('baz'))
->getMock();
$mockBar->expects($this->once())
->method('baz')
->with( /** WHAT WOULD I ASSERT HERE? **/);
$sut = new SUT();
$sut->foo($mockBar);
}
}
你不能在PHP中比较两个闭包。在 PHPUnit 中,有没有办法执行传入的参数或以某种方式验证它?