这是在尝试为调用带有闭包的模拟方法的类的方法编写测试时出现的。您将如何验证被调用的闭包?
我知道您可以断言该参数是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中有没有一种方法来执行传入的参数,或者以某种方式验证它?
https://stackoverflow.com/questions/19255171
复制相似问题