PHPUNIT Funktionen in einem Laravel Package mit PHPPEST nutzen

Ich integriere PHPPEST in mein Laravel Package, indem ich folgenden Header-Code in die jeweilige Testdatei einfüge:

use Tests\TestCase;
uses(TestCase::class)->in(__DIR__);

Ohne diese Zeilen würden Funktionen wie

$this->get('url');

nicht funktionieren. Mit dieser Integration kann ich PHPUNIT Funktionen in PHPPEST effizient in meinen Laravel Tests verwenden.




Eine zusätzliche Optimierungsmöglichkeit besteht darin, eigene TestCase-Dateien zu erstellen, indem man Tests\TestCase erweitert und um eigene Methoden ergänzt.

Beispiel:

namespace DeinPaketNamespace\Core\App\Classes;

use Tests\TestCase as LaravelTestCase;

class TestCase extends LaravelTestCase
{

    protected function assertClassExist(string $classNameWithNamespace)
    {
        $this->assertTrue(class_exists($classNameWithNamespace));
    }
}

//Am Ende des Files binded man dann die neuen Methoden in Pest ein.
uses(TestCase::class)->in(__DIR__);

in deinem Testfile brauchst du nun nur noch dein eigenes TestCase-File einbinden:

use DeinPaketNamespace\Core\App\Classes\TestCase;
uses(TestCase::class)->in(__DIR__);

Tipps:

  • Nutze die Erweiterung von TestCase, um maßgeschneiderte Testmethoden zu erstellen.

  • Verwende klare und präzise Bezeichnungen für deine Testfunktionen, um ihre Funktionalität transparent zu machen.

  • Strukturiere deine eigenen TestCase-Dateien für eine verbesserte Lesbarkeit und Wartbarkeit des Codes.