WebDev Insights: Entdecken Sie die Welt der Webentwicklung und PHP

Von Shopware bis PHP: Deine Ressource für erfolgreichen E-Commerce

Unit Testing in PHP: Wie du deine Shopware-Plugins zuverlässig testest

Warum sind Unit Tests in Shopware wichtig?

Unit Tests helfen, Fehler frühzeitig zu erkennen und sorgen für eine stabilere Codebasis. Besonders bei Shopware-Plugins ist es wichtig, dass Funktionen zuverlässig arbeiten, um Probleme im Live-Betrieb zu vermeiden.

Was ist ein Unit Test?

Ein Unit Test überprüft eine einzelne Funktion oder Methode auf ihre Korrektheit, ohne Abhängigkeiten wie Datenbanken oder APIs.

Voraussetzungen für Unit Tests in Shopware

  • 🔹 Installiertes PHPUnit (ab Version 9.x für PHP 8.3)
  • 🔹 Shopware 6 Development-Umgebung mit Composer
  • 🔹 Autoloading für Testklassen aktiviert (composer dump-autoload)

Ein einfacher Unit Test mit PHPUnit

Beispiel: Ein einfacher Test für eine Calculator-Klasse.

namespace MyPlugin\Tests;

use PHPUnit\Framework\TestCase;
use MyPlugin\Service\Calculator;

class CalculatorTest extends TestCase {
    public function testAddition() {
        $calc = new Calculator();
        $this->assertEquals(5, $calc->add(2, 3));
    }
}

Unit Testing in Shopware: Ein Service testen

Shopware nutzt Dependency Injection – das bedeutet, dass wir Services isoliert testen können:

namespace MyPlugin\Tests;

use PHPUnit\Framework\TestCase;
use MyPlugin\Service\ProductService;
use Shopware\Core\Framework\Context;

class ProductServiceTest extends TestCase {
    public function testGetProductName() {
        $service = new ProductService();
        $this->assertEquals('Produkt 1', $service->getProductName(1));
    }
}

Mocking von Shopware-Abhängigkeiten

Mit Mockery oder PHPUnit-Mocks können wir Shopware-Core-Klassen nachbilden:

$repoMock = $this->createMock(ProductRepository::class);
$repoMock->method('find')->willReturn(new Product('Testprodukt'));

Fazit

Unit Testing hilft, Bugs frühzeitig zu erkennen und erhöht die Stabilität von Shopware-Plugins. Besonders bei größeren Projekten ist es eine unverzichtbare Praxis.

Brauchst du Unterstützung bei Unit Tests für dein Shopware-Plugin? Kontaktiere mich – ich helfe dir gerne weiter!

Related Articles