Testy PHPUnit z zamknięciami

Próbowałem napisać test dla metody klasy, która wywołuje metodę próbną z zamknięciem. Jak zweryfikowałbyś wywołanie zamknięcia?

Wiem, że byłbyś w stanie stwierdzić, że parametr jest instancjąClosure. Ale jak sprawdziłbyś cokolwiek na temat zamknięcia?

Na przykład, jak zweryfikowałbyś przekazaną funkcję:

 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);
     }
 }

Nie możesz porównać dwóch zamknięć w PHP. Czy w PHPUnit istnieje sposób na wykonanie przekazanego parametru lub w jakiś sposób go zweryfikować?

questionAnswers(3)

yourAnswerToTheQuestion