Тестирование 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 есть способ выполнить переданный параметр или каким-то образом проверить его?

Ответы на вопрос(3)

Ваш ответ на вопрос