Frage

Ich möchte ein Modell testen und für einen dieser Tests möchte ich eine Methode des Modells, das ich teste, verspotten möchte. Also teste ich keinen Controller und ich möchte kein ganzes Modell ersetzen, nur eine Methode desselben Modells i teste.

Grund ist, dass diese Modellmethode einen Datei-Upload-Handler aufruft. Diese Funktion ist an anderer Stelle bereits getestet.

was ich jetzt mache, ist: Ich teste den Modell "Inhalt". Dort teste ich die Methode 'Addteaser', die "Sendteaser" ruft. Also möchte ich Sendteaser verspotten und eine erfolgreiche Antwort der Methode Sendteaser fälschen, während sie hinzugefügt werden.

das sieht so aus:

generasacodicetagpre.

Wenn ich meinen Testlauf lasse, erhalte ich einen Fehler, dass ein Modell innerhalb der Methode 'Sendteaser' nicht ordnungsgemäß bezeichnet wird. Hallo! Es sollte nicht aufgerufen werden! Ich habe die Methode verspottet! ..... oder nicht?

Was wäre die richtige Syntax für das Spott der Methode?

vielen dank wie immer für hilfe!

calamity jane

edit: Hier ist der relevante Code für mein Modell:

generasacodicetagpre.

Wechseln von GetMock an GetMockFormodel hat die Leistung jedoch nicht geändert.

War es hilfreich?

Lösung

$ this-> getrock ist nicht der Weg, um zu verspotten.Sie sollten $ this-> generieren

Ich würde Sie empfehlen, ein Buch über CakePhp-T-testing zu lesen./ a>

Andere Tipps

Ich möchte die Antwort von @ndm mit Kuchenprüfhelferklasse CakeTestCase::getMockForModel()

generasacodicetagpre.

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