Tach!
Wenn kein Array übergeben wird, wirft die Methode [do()] eine Exception. Die Methode "method" stellt zusammen mit ihrem Objekt jedoch klar, dass auf jeden Fall ein Array übergeben wird. Es kann nicht vorkommen, dass ein String oder sowas übergeben wird und somit wird auch nie eine Exception geworfen.
- Muss ich hier überhaupt ein Try drumherum bauen?
Müssen muss man gar nichts. Wenn das Array nicht der Grund für eine Exception ist, sehe ich keinen Grund, eine solche abzufangen. Wenn allerdings noch andere Exception kommen könnte, und du dich um sie kümmern wolltest, dann ...
- Wenn ja, wie kann ich hier eine Exception erzwingen ohne eine künstliche Methode, welche arArray einen unrealistischen Wert gibt?
Für einen Unit-Test? Da gibt es doch schon einen, der do() testet. Beim method()-Testen testest du die Arbeitsweise von method() und nichts anderes. Ob method() noch do() oder sonstwas aufruft, ist belanglos. Sieh es als Black-Box an.
- Ist es überhaupt richtig eine Exception zu werfen, wenn kein Array übergeben wird? Man könnte alternativ auch einen PHP Fehler erzeugen.
Exceptions kann man fangen, PHP-Fehler nur @unterdrücken oder in einen eigenen (mehr oder weniger globalen) Handler laufen lassen. Wenn du objektorientiert und mit Exceptions arbeitest, solltest du bei Exceptions bleiben.
- Kann man einen Standardtypen bei der Parameter Übergabe erzwingen? Ich habe es schon so probiert:
Nur bei Klassen (ab PHP5) und Arrays (ab PHP 5.1): Type Hinting
dedlfix.