Ik erger me aan PHPUnit en moet het even kwijt. Met dit topic ben ik benieuwd of ik gelijkdenkenden hier vind of dat iemand mij kan laten zien dat het allemaal niet zo erg is 
Wat ik niet snap is de output buffering en catch-all mechanismen van PHPUnit. Elke php parse error wordt opgeslokt en niet op een normale, duidelijke wijze naar buiten gebracht. Ik wordt dus helemaal gestoord van het schrijven van unit tests omdat ik op geen enkele manier kan debuggen en maar test-code in mijn source ga stoppen, runnen, kijken welke warning ik krijg om er achter te komen een typo te hebben gemaakt in een call van een methode
Een voorbeeldje van hoe ik denk aan TDD te doen. Je bedenkt een handige use case, dus die schrijf je op in een test:
Ok, er is dus iets mis. Je hebt geen idee wat, maar je begint maar de Foo en Bar class te definieren en zet de autoloading aan. Misschien helpt het, want je hebt geen idee
Oh ja, de methode Foo#doSomething bestaat nog niet, dus daar krijg je ook een lekkere terugkoppeling van
Laten we die maken en het nog eens proberen
Tadaa! Waarom krijg ik niet een failing test als er iets mis is, met de php error als message waarom het niet is gelukt
Goed, ik heb tot 10 geteld, het van me af geschreven
Ben ik gek of hebben meer mensen hier last van?
Wat ik niet snap is de output buffering en catch-all mechanismen van PHPUnit. Elke php parse error wordt opgeslokt en niet op een normale, duidelijke wijze naar buiten gebracht. Ik wordt dus helemaal gestoord van het schrijven van unit tests omdat ik op geen enkele manier kan debuggen en maar test-code in mijn source ga stoppen, runnen, kijken welke warning ik krijg om er achter te komen een typo te hebben gemaakt in een call van een methode

Een voorbeeldje van hoe ik denk aan TDD te doen. Je bedenkt een handige use case, dus die schrijf je op in een test:
PHP:
Je runt hem:1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php class MyTest extends PHPUnit_Framework_TestCase { public function testMyFoo () { $service = new Foo; $object = new Bar; $return = $service->doSomething($object); $this->assertEquals('my-value', $return); } } |
ik@pc:~/phpunit-test/tests$ phpunit ./ PHPUnit 3.6.10 by Sebastian Bergmann. ik@pc:~/phpunit-test/tests$

ik@pc:~/phpunit-test/tests$ phpunit ./ PHPUnit 3.6.10 by Sebastian Bergmann. ik@pc:~/phpunit-test/tests$

ik@pc:~/phpunit-test/tests$ phpunit ./ PHPUnit 3.6.10 by Sebastian Bergmann. F Time: 0 seconds, Memory: 3.00Mb There was 1 failure: 1) MyTest::testMyFoo Failed asserting that null matches expected 'Foo'. /home/ik/phpunit-test/tests/MyTest.php:11 FAILURES! Tests: 1, Assertions: 1, Failures: 1. ik@pc:~/phpunit-test/tests$

Goed, ik heb tot 10 geteld, het van me af geschreven