这试图为类的方法编写一个测试,该方法调用带有闭包的模拟方法。你将如何验证被调用的闭包?
我知道您可以断言该参数是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中有没有办法执行传入的参数或以某种方式验证它?