Zurück zum Blog
May 16, 2021E-commerce1 min read

Unit-Tests in Magento 1 schreiben

Von Miro Kodet

Unit-Tests für Magento 1 im Docker-Container schreiben

translationKey: "magento-1-unit-tests" Unit-Tests zu schreiben sollte eine grundlegende Aufgabe für jeden Entwickler sein. Sie geben dir die Gewissheit, dass dein Code wie erwartet funktioniert und nichts anderes kaputt macht.

Magento 1 wird noch von vielen Händlern eingesetzt und obwohl die Komplexität nicht so hoch ist wie bei Magento 2, sollten Unit-Tests Teil jeder Entwicklung sein. Das folgende Rezept richtet sich an die Mehrheit der Entwickler:

  • Deine IDE ist PhpStorm
  • Dein Magento 1 läuft im Docker-Container

PHPUnit installieren

Im Root deines Projekts führe folgenden Befehl aus:

composer require phpunit/phpunit

Wenn du Composer noch nicht für dein Projekt verwendest, wird dabei eine composer.json erstellt und alle erforderlichen Dateien im vendor-Ordner abgelegt.

PHPUnit-Konfiguration erstellen

Füge folgendes XML in den Projekt-Root ein:

phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php"
         colors="true"
         verbose="true"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Your Test Suite">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
</phpunit>

Dieses XML weist PHPUnit an, Tests deiner Test-Suite im tests-Ordner zu suchen. Passe es gerne nach Bedarf an.

Deinen ersten Test schreiben

Erstelle im tests-Ordner deinen ersten Test:

TestFirst.php
<?php
 
// Pfad zur Mage-Datei
require_once '/var/www/html/app/Mage.php';
// Pfad zur Datei, die du testen möchtest
require_once '/var/www/html/app/code/local/YourVendor/YourModule/Helper/Whatever.php';
 
class TestFirst extends \PHPUnit\Framework\TestCase
{
    public function testGetSomeResponse() {
        Mage::app();
        $helper = new YourVendor_YourModule_Helper_Whatever();
        
        $this->assertEquals($helper->getSomeResponse(), 'Your result');
    }
}

Das ist das grundlegende Gerüst für Unit-Tests (und das minimal funktionierende Setup). Jetzt ist es Zeit, die Tests in der IDE auszuführen. Klicke auf das grüne Play-Symbol neben public function testGetSomeResponse() oder neben class TestFirst extends \PHPUnit\Framework\TestCase. Dies startet den Test-Lauf.

Die gesamte PHPUnit-Konfiguration funktioniert normal, solange phpunit.xml vorhanden ist, und kann (und sollte) nach deinen Bedürfnissen angepasst werden.

Jetzt ran an die Arbeit – viel Spaß beim Coden!