2017-09-13 8 views
0

Ich benutze phpunit, um meine CakePHP-Anwendung zu testen, jedoch habe ich zwei Fixtures erstellt: - A und B. A wird zuerst eingefügt und B Sekunde, aber B hat auch ein a_id Feld, das ich aus dem ersten Gerät füllen muss.Wie mit verwandten Fixtures umgehen

Ein gutes Beispiel dafür, was ich meine, besteht in der Dokumentation: https://book.cakephp.org/3.0/en/development/testing.html#loading-fixtures-in-your-test-cases wobei articles und comments Vorrichtungen gezeigt, aber es ist nie gezeigt, wie comments gebaut wird.

Wie mache ich das mit CakePHP-Fixtures?

+0

Fixture ist nur Beispieldaten, die Sie manuell hinzufügen können. Hier ist ein Buch über unti Tests in CakePHP: http://www.apress.com/gp/book/9781484212134 – rrd

+1

@rrd danke, aber da das Buch £ 17 kostet es nicht wirklich helfen, können Sie nicht erklären, was Sie meinen mehr auf eine Weise, die meine Frage beantwortet? – Sammaye

Antwort

1

Leuchten sind nicht miteinander verwandt. Sie müssen Ihre Verknüpfungen manuell in den Daten erstellen, die sie enthalten. Fixtures sind nur Daten in den Tests verwendet as the book explains it as well. Die Daten werden in die Test-DB eingefügt, unabhängig davon, ob sie miteinander verwandt sind oder nicht. Sie werden nur dann fehlschlagen, wenn Sie den erzeugten DB-Tabellen Beschränkungen auferlegen und die FKs nicht vorhanden sind.

Wenn Sie Code testen, der von Modellen und der Datenbank abhängt, können Sie Fixtures als Möglichkeit zum Generieren temporärer Datentabellen verwenden, die mit Beispieldaten geladen werden, die vom Test verwendet werden können. Der Vorteil der Verwendung von Fixtures besteht darin, dass Ihr Test keine Möglichkeit hat, Live-Anwendungsdaten zu unterbrechen. Darüber hinaus können Sie Ihren Code testen, bevor Sie Live-Inhalte für eine Anwendung entwickeln.

Also wenn Sie Kommentare haben, erstellen Sie die Datensätze dort mit den FKs Ihrer Artikel.