PHP-Funktionen in PHPUnit testen

Datum: 13. Januar 2017
Autor*in: Benjamin Hofmann


Gestern bin ich auf eine interessante Erweiterung für PHPUnit gestoßen, die es erlaubt auch reine Funktionen als Mock-Objekte anzulegen und deren Verhalten damit zu testen: PHP-Mock bzw. dessen Erweiterung für die Nutzung in PHPUnit.

Damit kann man dann sehr bequem auch interne Funktionen testen, z.B. file_get_contents() oder auch ein mail().

Ein so gearteter Test könnte dann z.B. so aussehen:

<?php

namespace deimxnetprojecttestunitTests;

use phpmockphpunitPHPMock;

class BuiltinTest extends PHPUnit_Framework_TestCase {

  use PHPMock;

  public function testFileGetContents() {
    $mock = $this->getFunctionMock(__NAMESPACE__, 'file_get_contents');
    $mock->expects(self::once())->willReturn('contents-of-file');

    self::assertEquals('contents-of-file', file_get_contents());
  }

  public function testMail() {
    $mock = $this->getFunctionMock(__NAMESPACE__, 'mail');
    $mock->expects(self::once())->with(self::equalTo('example@example.com'), self::isType('Subject'), self::equalTo('Mail body'));

    self::assertTrue(mail('example@example.com', 'Subject', 'Mail body'));
  }
}

Kommentare

Selber kommentieren:






Weitere Beiträge zum Thema Technologie


HTML5 Please

Autor*in: Benjamin Hofmann


Technologie


Sehr praktisch um schnell nachschauen zu können, was geht und was man vermeiden sollte.


Beitrag lesen
24
JAN
12

XAMPP: PHPUnit installieren

Autor*in: Stefan Oswald


Technologie


Im Auslieferungszustand funktioniert das in XAMPP installierte PHPUnit nicht, bzw. nicht so wie wir das bei infomax gerne hätten. Folgende Anleitung beschreibt die Einrichtung einer aktuellen PHPUnit-Installation, die mit XAMPP, NetBeans und unserer imx.Platform zusammen arbeitet. PHPUnit lässt sich am besten mittels PEAR installieren. Folgende Datei herunter laden und nach x:xamppphp kopieren: http://pear.php.net/go-pear.phar Sollte die …


Beitrag lesen
05
AUG
13

Google EAT

Autor*in: Hannes Heigenhauser


infomax // Strategie & Konzeption // Technologie


Alles neu mit Google EAT? Oder doch eher nur ein Hypethema? Wir erklären Ihnen, was sich hinter EAT verbirgt und worauf Sie achten müssen


Beitrag lesen
31
AUG
20

Was die Timeline an Facebook Fanpages ändert

Autor*in: Axel Güldner


Technologie


Da es inzwischen bereits ein paar Tage her ist, dass Facebook die Timeline Darstellung für alle Fanpages verpflichtend gemacht hat, ist es an der Zeit, sich etwas mit den einhergehenden Änderungen zu beschäftigen. Die Timeline ist da! Die auffälligste Änderung ist natürlich die Timeline an sich. Die altbekannte Wall musste einer chronologischen Darstellung aller Aktivitäten …


Beitrag lesen
04
MAI
12