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/phpunitWenn 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:
<?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:
<?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!