2017-12-09 7 views
2

Wenn ich phpunit seine Show ausführen wird der Test nicht bestanden. Aber es sagt mir nicht, warum der Test nicht besteht. Ich habe zwei Bilder beigefügt, um dies zu beschreiben. HierLaravel 5.5 PHPUnit zeigt keine Beschreibungen

ist das Ergebnis erhalte ich:

Failed asserting that actual size 0 matches expected size 1.

Ich möchte etwas, das ich mag dieses, mich in Test Driven Development führen helfen:

Failed with a callstack provided

Antwort

0

Du siehst anders Ergebnisse, weil Sie hier in zwei verschiedene Kategorien von Fehlern laufen:

1. Der Code wurde ausgeführt, aber Ihre Assertion ist fehlgeschlagen.

Dies geschieht, wenn PHPUnit eine Behauptung wird, die nicht truthy, wie ist:

$this->assertEquals(1, 0); 

Wenn dies geschieht, PHPUnit sieht nur, dass Sie 1 und 0zu vergleichen versucht, und das ist alles PHPUnit über weiß dies. Es kann Ihnen nicht sagen warum der Code fehlgeschlagen, weil Sie einen Business-Logikfehler haben, die von PHP nicht erkannt werden kann.

2. Einige von Ihnen ausgeführte Codes haben einen Fehler oder eine Ausnahme ausgelöst, die nicht abgefangen wurde.

Wenn Sie versuchen, etwas zu tun, was in PHP nicht erlaubt ist (z. B. Verweisen auf eine Klasse, die nicht existiert), haben Sie einen Laufzeitfehler. In diesen Situationen bietet PHP mehr Informationen über den Fehler oder stellt einen Call-Stack bereit, in dem eine Ausnahme aufgetreten ist, was zu einer detaillierteren Nachricht führt, die Sie sehen.