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


JavaScript Days Berlin und online 2022

Autor*in: Magdalena Piller


Technologie // Über den Tellerrand


Ein kurzes Wrap-Up meiner diesjährigen Teilnahme an den JS-und Angular-Days. Leider wurde in diesem Jahr die Konferenz nicht als volle „Hybrid“-Veranstaltung gehalten, so dass nur eine geringe Auswahl an Sessions online zur Verfügung standen. Sehr schade! Trotzdem fanden sich noch einige spannende Themen.


Beitrag lesen
07
NOV
22

Parallax Scrolling – ein cooler Effekt der nicht ganz neu ist

Autor*in: Axel Güldner


Technologie // User Experience & Design


Heute wollte ich mal kurz einen Effekt vorstellen, den viele sicher schon mal gesehen haben, ihn toll fanden, aber keine Ahnung hatten wie das eigentlich funktioniert. Das Thema ist Parallax Scrolling, ein Effekt der auf Websites auftritt, wenn verschiedene Hintergrund Ebenen ein unterschiedliches Scrollverhalten aufweisen. Dies wirkt unerwartet und frisch, da dies nicht die gewohnte …


Beitrag lesen
17
NOV
11

Marzipano – a 360° viewer for the modern web

Autor*in: Benjamin Hofmann


Projekte   //   Strategie & Konzeption   //   Technologie


Marzipano Alt
Beschreibungstext Beschreibungstext

Im Zuge einer Aufwandsschätzung für zur Einbindung von 360°-Panoramen, die vom Kunden selbst erstellt und eingebunden werden können, bin ich auf Marzipano gestoßen. Ein Skript, welches das mit Bravour erledigt und mit 55 KB Dateigröße (komprimiert) auch einen relativ kleinen Footprint hat. Das Tool wird übrigens von Mitarbeitern von Google entwickelt, ist aber kein offizielles …


Beitrag lesen
16
JAN
17

<enki/>

Autor*in: Benjamin Hofmann


Technologie // Über den Tellerrand


Ich bin neulich über Enki, eine kleine interessante App für iPhone und Android gestolpert, die einem Entwickler zu bestimmten Themen täglich kleine Aufgaben gibt, die es zu lösen gilt. Das Ganze dient dazu in wenigen Minuten täglich etwas zusätzliches Wissen aufzubauen oder dieses zu vertiefen. Die App stellt sich wie ein typischer Fitness-Tracker da und …


Beitrag lesen
07
SEP
16