Frage

Ich schreibe einen Einheitstest in CakePHP 1.3 über SimpleTest.

Ich führe den folgenden Code aus, der funktioniert (er erstellt wie erwartet)

$this->testAction('/post/add/user:'. $userId, array('method' => 'post'));

Ich muss die ID dieses hinzugefügten Beitrags finden, der in den nächsten beiden Tests verwendet wird - Editieren eines Beitrags und Löschen eines Beitrags.Ich habe versucht, über das Modell zu verweisen (d. H. $ post-> id, $ this-> post-> id), aber es scheint, dass das Durchführen von Testaktionen nicht auf dieselbe Weise funktioniert.

Ich merke auch, dass ich abfragen könnte, um max (ID) zu finden, aber wenn es einfach einen anderen Benutzer auf dem Testsystem ist, der einen neuen Beitrag in fast zur gleichen Zeit einfügtkönnte die Ergebnisse anschrauben (zumindest soweit ich weiß - korrigiere mich, wenn ich falsch liege).

War es hilfreich?

Lösung

Usually, from a controller you should use

$this->Post->getLastInsertID();

This is a wrapper for connectors methods.

$this->Post->id 

is used to set an id and then retrieve or set data.

Andere Tipps

I never used cakephp before, but with mysql and mysqli you can get the last inserted ID with the following:

mysql_insert_id(), and $mysqli->insert_id respectively.

http://php.net/manual/en/function.mysql-insert-id.php

http://php.net/manual/en/mysqli.insert-id.php

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