Frage

Ich bin immer noch frisch in PHPSPEC, aber normalerweise finde ich eine Lösung, wenn ich mit etwas kämpfest, aber dieser ist hart.

Ich habe viele verschiedene Ansätze ausprobiert und ich habe keine Lösung gefunden.Ich benutze symfony2.

Ich habe eine Klasse, die ich testen möchte:

generasacodicetagpre.

und hier ist, wie sieht meine Spec-Klasse aus:

generasacodicetagpre.

und nach dem Ausführen von PHPSPEC bekomme ich diesen Fehler:

generasacodicetagpre.

Ich habe keine Ahnung, wie ich dieses Problem lösen kann.Wenn jemand einen Hinweis hat, helfen Sie bitte.

War es hilfreich?

Lösung

Dies ist ein gemeinsamer Stolperstein mit PHPSPEC, der Erklärung:

generasacodicetagpre.

bedeutet, dass ein Collaborator-Objekt von $-Kind mit derselben Schnittstelle von MyClass eingerichtet wird. Wenn kind-> getjsonquery () in der SUT (Klasse Sie getestet) aufgerufen wird, gibt es eine -MethodeProphecy nicht die Zeichenfolge, die Sie erwarten, dass sie zurückgibt.

Was Sie sagen möchten, ist, dass Ihre ArrayCollection nicht $ -Kind selbst enthält (ein Collaborator-Objekt), aber das eigentliche Objekt, das der Kollaborator umwickelt ist. Du machst es so:

generasacodicetagpre.

Außerdem sollten Sie nicht verwenden (d. H. IS ist überflüssig) beides sollte () und Willreturn () auf demselben Kollaborator, einem oder dem andere reicht aus. Wenn Sie angegeben haben, was der Collabratator wird Rückkehr, es ist klar, dass es mit der Sut genannt wird. Sollteckig () sollte im "Assert" -Teil des Tests verwendet werden um zu bestätigen, dass der Kollaborator mit dem erwarteten aufgerufen wurde Argumente oder zur richtigen Zeit.

Ihre endgültige SUT und SPEAT sollte so etwas aussehen:

generasacodicetagpre.


generasacodicetagpre.

auch die linie

generasacodicetagpre.

Erzeugt ein assoziiertes Array in $ Abfrage, dh Array ('ID'=> 1) (Dies ist das, was das zweite 'wahres' Argument für JSON_ENCODE stirbt), daher erwarten Sie $ Somefetcher-> GETDATA () mit dem letzteren angerufen werden, somit:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top