In der PHP-Projektentwicklung ist Unit-Test eine sehr wichtige Aufgabe. PHPUnit und Mockery sind zwei sehr beliebte PHP-Unit-Test-Frameworks. PHPUnit ist ein weit verbreitetes Unit-Testing-Tool, während Mockery ein Objektsimulationstool ist, das sich auf die Bereitstellung einer einheitlichen und prägnanten API zum Erstellen und Verwalten von Objekt-Mocks konzentriert.
Durch die Verwendung von PHPUnit und Mockery können Entwickler schnell und effizient Unit-Tests durchführen, um die Korrektheit und Stabilität ihrer Codebasis sicherzustellen. In diesem Artikel wird erläutert, wie Sie PHPUnit und Mockery für Unit-Tests verwenden, sodass Sie solche Tests bequem durchführen können.
composer require --dev phpunit/phpunit mockery/mockery
Dieser Befehl installiert PHPUnit und Mockery als Entwicklungsabhängigkeiten in Ihrem Projekt, um die Ausführung des Komponententests zu erleichtern .
Erstellen Sie in Ihrem Projektordner eine Datei mit dem Namen „CalculatorTest.php“ und schreiben Sie den folgenden Code hinein:
use PHPUnitFrameworkTestCase; use MyAppCalculator; class CalculatorTest extends TestCase { public function testAddition() { $calculator = new Calculator(); $result = $calculator->add(2, 2); $this->assertEquals(4, $result); } }
In diesem Testfall Wir instanziieren zunächst ein Calculator-Objekt und verwenden dann die Methode add(), um die Additionsoperation auszuführen. Abschließend verwenden wir die Methode „assertEquals()“, um zu überprüfen, ob das Ergebnis der Operation dem erwarteten Wert entspricht.
Angenommen, wir schreiben eine Klasse mit dem Namen „UserService“, um benutzerbezogene Geschäftslogik zu verarbeiten. Diese Klasse ist für den Zugriff auf den Benutzerdatenspeicher von einer anderen Klasse namens „UserRepository“ abhängig. Wir können Mockery verwenden, um diese Abhängigkeit zu simulieren und zu überprüfen, ob der UserService im Test normal läuft.
Erstellen Sie in Ihrem Projektordner eine Datei mit dem Namen „UserServiceTest.php“ und schreiben Sie den folgenden Code hinein:
use PHPUnitFrameworkTestCase; use MyAppUserService; use MyAppUserRepository; use MockeryAdapterPhpunitMockeryPHPUnitIntegration; class UserServiceTest extends TestCase { use MockeryPHPUnitIntegration; public function testCreateUser() { $repo = Mockery::mock(UserRepository::class); $repo->shouldReceive('create') ->once() ->with(['name' => 'Alice']); $service = new UserService($repo); $service->createUser('Alice'); } }
In diesem Testfall verwenden wir die Funktion „Mockery: :mock()“-Funktion zum Erstellen eines Schein-UserRepository-Objekts. Dann erwarten wir, dass über die Methode „shouldReceive()“ die Methode „create()“ dieses Scheinobjekts einmal aufgerufen wird und ein Array mit dem Namen „‚Alice‘“ als Parameter übergeben wird. Schließlich instanziieren wir ein UserService-Objekt und rufen die Methode „create()“ des Scheinobjekts über seine Methode „createUser()“ auf.
./vendor/bin/phpunit
Dieser Befehl findet automatisch alle Testfälle im Projekt und führt sie aus. Wenn alle Tests erfolgreich sind, gibt PHPUnit eine Meldung aus, um dies zu bestätigen.
Wenn Sie nur einen bestimmten Testfall ausführen möchten, können Sie nach dem Befehl die Testdatei oder Testmethode angeben. Um beispielsweise die Methode testAddition() in „CalculatorTest.php“ auszuführen, können Sie den folgenden Befehl ausführen:
./vendor/bin/phpunit tests/CalculatorTest.php --filter testAddition
Mit diesen einfachen Schritten können Sie PHPUnit und Mockery für PHP-Unit-Tests verwenden. Eine korrekte und vollständige Testsuite trägt dazu bei, die Qualität und Stabilität der Codebasis des PHP-Projekts sicherzustellen und eine kontinuierliche Verbesserung und Weiterentwicklung zu ermöglichen.
Das obige ist der detaillierte Inhalt vonWie verwende ich PHPUnit und Mockery für Unit-Tests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!