Ich bin neu zu Komponententests in PHP und ich habe ein kleines Problem. Ob das daran liegt, dass ich das Cake-Framework verwende oder weil ich an die Java-Art gewöhnt bin, weise darauf hin, dass ich Probleme habe.Pass Daten Variable zu funktionieren, wenn Unit Testing
Ich schreibe Tests für eine Model-Funktion, die beim Einreichen eines Formulars aufgerufen wird. Die Funktion empfängt zwei Parameter, von denen ich glaube, dass sie korrekt übergeben werden, und ein Datenobjekt, das nicht als Parameter empfangen wird. Meine Frage ist, wie befülle ich dieses "Daten" -Objekt? Ich bekomme immer und "undefinierten Index" Fehler, wenn ich die Tests ausführen.
Ich habe versucht sowohl die Daten zu verspotten und Geräte zu verwenden, aber in aller Ehrlichkeit, bekomme ich diese Sachen nicht. Unten ist meine Modellfunktion, gefolgt von meinem Testcode.
Das ist wie die 52 Version meiner Testfunktion, also fühlen Sie sich frei, einfach zu tun, was Sie wollen. Ich dachte, dass es einfacher und schneller wäre, sich über die Daten lustig zu machen, da ich eigentlich nur die 'client_type_id' für die Bedingung in meiner Model-Funktion benötige, aber ich konnte das 'data'-Objekt nicht aktivieren. .. ohne Erfolg.
public function testIsUniqueIfVerified01() {
$this->Client = $this->getMock ('Client', array (
'find'
));
$this->Client->set(array(
'client_type_id' => 1,
'identity_no' => 123456789
));
//$this->Client->log($this->Client->data);
$check = array (
'identity_no' => '1234567890123'
);
$unverified = null;
$this->Client = $this->getMockforModel("Client",array('find'));
$this->Client->expects($this->once())
->method("find")
->with('first', array (
'conditions' => array (
"identity_no" => "1234567890123",
"Client.id" => "7711883306236",
'client_type_id <>' => 5
),
'fields' => array (
'Client.id'
)
))
->will($this->returnValue(false));
$this->assertTrue($this->Client->isUniqueIfVerified($check, $unverified));
unset ($this->Client);
}
Auch hier bin ich sehr grün, wenn es um Kuchen kommt und insbesondere PHP Unit Testing, so fühlen sich frei, zu erklären, wo ich schief gelaufen ist.
Danke!