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


Erkenntnisse der IPC 2011

Autor*in: Benjamin Hofmann


Projekte // Technologie // User Experience & Design


Bevor ich lange im Developer Meeting etwas erzähle, was dann sowieso nur wieder in Vergessenheit gerät, dachte ich mir meine Erkenntnisse von der IPC 2011 in Mainz einfach hier niederzuschreiben. Dauerhaft für alle von uns sichtbar und mit einer Möglichkeit Fragen zu stellen. Hier also meine Top 7 (unsortiert) der Dinge, die ich interessant fand …


Beitrag lesen
08
DEZ
11

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

imx.Platform News: Whitelabel, Barrierefreiheit & neue Funktionen

Autor*innen: Janine Kather, Lorena Meyer


infomax   //   Technologie


Wir haben die imx.Platform durch eine Reihe von Produkt-Updates weiter optimiert, um sowohl die Datenqualität als auch die Benutzerfreundlichkeit zu steigern. Diese Neuerungen erleichtern Ihre tägliche Arbeit und stellen sicher, dass unsere Plattform den aktuellen Anforderungen an digitale Barrierefreiheit und Transparenz entspricht. NEU: POI-Anreicherung im Toureneditor Im Rahmen einer Tour gibt es nun die Möglichkeit, …


Beitrag lesen
23
SEP
25

The Vanilla Javascript Repository

Autor*in: Benjamin Hofmann


Technologie   //   User Experience & Design


Und gleich noch ein Linktipp für all diejenigen, die wie ich, nur ungern jQuery einsetzen und ihre Seiten dadurch aufblähen oder verlangsamen. Unter Vanilla List gibt es eine optisch sehr ansprechende Sammlung von Skripten, die auf Vanilla JS aufbauen und viele unserer Anwendungsfälle abdecken können. Sehr schön ist auch die direkte Anzeige davon, ob eine …


Beitrag lesen
23
SEP
16