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


Besuch der c’t WebDev 2020

Autor*in: Florian Sauer


Technologie


Logo c't WebDev 2020

Vom 4.-6. Februar 2020 haben Matthias und ich in Köln die zweite c’t WebDev, eine Frontend Konferenz, besucht. Diese war in zwei Teile aufgegliedert. Am ersten Tag wurden optionale Workshops angeboten. Die folgenden zwei Tage über fand die eigentliche Konferenz mit den Vorträgen statt.


Beitrag lesen
13
FEB
20

imx.Platform News: Neue Funktionen für mehr Effizienz und Flexibilität

Autor*in: Verena Schmuck


infomax   //   Technologie


Mit dem aktuellen Release der imx.Platform News erwarten Sie zahlreiche neue Features und Verbesserungen, die die tägliche Arbeit noch intuitiver und leistungsstärker machen. Ob KI-gestützte Textgenerierung in der Stapelverarbeitung, flexible Uhrzeiten bei Veranstaltungen oder die Darstellung komplexer Objektbeziehungen – die imx.Platform entwickelt sich konsequent weiter in Richtung Benutzerfreundlichkeit und Effizienz.


Beitrag lesen
07
JUL
25

Out now: gråd extra, Ausgabe 4!

Autor*in: Christine Pfleger


infomax   //   Projekte   //   Strategie & Konzeption   //   Technologie   //   Tourismus   //   Über den Tellerrand   //   User Experience & Design


gråd extra - Das Magazin für e-Tourism | Ausgabe 4 | 2018 | Schwerpunkt "Ideen"
gråd extra - Das Magazin für e-Tourism | Ausgabe 4 | 2018 | Schwerpunkt "Ideen"

Es ist geschafft und wir sind sowas von stolz: Die vierte Ausgabe unseres Magazins gråd extra ist erschienen! Auf 78 Seiten haben wir uns ganz und gar dem Schwerpunkt „Ideen“ verschrieben.


Beitrag lesen
07
DEZ
18

Apple Touch Icons nutzen

Autor*in: Bastian Schwarz


Projekte // Technologie // User Experience & Design


Ich habe mal ein wenig recherchiert und möchte hier das Ergebnis mitteilen. Die Apple Touch Icons können generell benutzt werden um Apps oder Webseiten auf z.B. den Startbildschirm zu pinnen. Ist bei der Webseite dann ein solches Icon hinterlegt wird das „Lesezeichen“ mit ihm hinterlegt und man erhält so einen schönen Wiedererkennungswert. Generell sollten die …


Beitrag lesen
17
OKT
12