Zum Inhalt springen

Testen in Extbase, PHPUnit

Erstellt am 28. Januar 2013 · Noch keine Antworten

Tags: Frage

Thomaslav ·

Hallo zusammen,

ich versuch grade meine ersten Tests zu schreiben für Extbase.

Und zwar hab ich diverse statische Datumsfunktionen in einer Serviceklasse hinterlegt:

class Tx_TmCoursecal_Services_DateService {

    /**
     * @static
     * @param Array $date1
     * @param Array $date2
     * @return bool|int
     */
    public static function getDiffDays($date1 = Array(), $date2 = Array()) {
       ....
    }
    ...
}

Zum Testen hab ich mir die Phpunit Extension installiert. In dem Ordner Tests/Services hab ich folgende Klasse angelegt:

class Tx_Tmcoursecal_Services_DateServiceTest extends Tx_Extbase_Tests_Unit_BaseTestCase {

    /**
     * @var Tx_TmCoursecal_Services_DateService
     */
    protected $fixture;

    public function setUp() {
        $this->fixture = new Tx_TmCoursecal_Services_DateService();
    }
    public function tearDown() {
        unset($this->fixture);
    }


    /**
     * @test
     */
    public function getDiffDate() {
        $firstdate = Array(05, 04, 2010);
        $lastdate = Array(10, 04, 2010);

        $this->assertSame(5, $this->fixture::getDiffDays($firstdate, $lastdate, 'Date difference is noch calculated corrected'));
    }
}

Allerdings krieg ich beim Aufrufen des Tests im Backend nur ne weiße Seite angezeigt.

Nach auskommentieren von "$this->assertSame..." läd PHPUnit alle Testklassen ganz normal und der Test lässt sich ohne Ergebnis ausführen.

Kann es sein, dass er mit der statischen Methode nicht zurechtkommt?
Ich hab im Code auch keine Funktion assertSame Methode gefunden, sondern mich an den Tests für Fluid orientiert.

Gibt es irgendwo ne ausführliche Doku bezüglich Testen in Extbase? Vielleicht kennt auch jemand nen gutes Buch.