PHPUnit-Mock-Eigenschaften eines Objekts
Ich bin Verriegelung nach vorn, einen Weg, um ein mock-Objekt, und füllen Sie seine Eigenschaften.
Hier ist ein Beispiel einer Methode, die nutzt eine Eigenschaft eines anderen Objekts:
class MyClass {
private $_object;
public function methodUnderTest($object) {
$this->_object = $object;
return $this->_object->property
}
}
Unit-Tests diese Methode, die ich erstellen sollte, ein mock $object
mit der getMockBuilder()
Methode von PHPUnit
. Aber ich kann nicht einen Weg finden, zu verspotten, die Eigenschaften der $object
, nur die Methoden.
- Warum nicht Sie gerade jene Eigenschaften, ohne Sie verarschen?
- Ich versuchte wirklich das zu tun, aber nicht wissen, warum es nie geklappt, bis heute. Vielen Dank für das heads-up, können Sie tatsächlich die Eigenschaften des verspotteten Objekte so, als würden Sie normalerweise mit einem Objekt
- Zum Glück bin ich nicht völlig verrückt, die einfache Lösung, die Sie vorgeschlagen, funktioniert gut mit den meisten meiner Klassen, aber für ein paar, es funktioniert nicht und es gibt einfach zurück
NULL
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen von Eigenschaften zu einem verspotteten-Objekt, das Sie gerade legen Sie Sie wie Sie normalerweise tun mit einem Objekt:
$mock->property
nun zurück'some_value'
Dank akond
P. s. für mein Projekt, das funktioniert nicht mit einigen Klassen, und wenn ich versuche zu nennen
$mock->property
es gibt einfach zurückNULL
__get()
Methode und stellen Sie wieder die gewünschte Ausgabe. Dies war die Gründe für das scheitern in einigen meiner KlassendisableOriginalConstructor()
Bedürfnisse Klammer, um anzuzeigen, es ist eine Methode, nicht eine Eigenschaft. Andernfalls erhalten Sie eine Fehlermeldung