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


Webbrowser

Autor*in: Sascha Nützel


Technologie // User Experience & Design


Bei meinen Streifzügen durch das „Neuland“ bin ich auf einen neuen Browser gestoßen: Blisk – dieser basiert auf Chromium und hält für uns Entwickler/Designer ein paar nette Features bereit (teils in näherer Zukunft). gleichzeitig Desktop / Mobile überprüfen Auto- Refresh nach Source- Change Analytics (JS Fehler, Pagespeed, Browser Kompatibilität) Screenshots Der erste Eindruck, auch ohne Beta- Features, …


Beitrag lesen
26
SEP
16

KI gestützte Designtools

Autor*in: Carina Kruse


Technologie   //   Über den Tellerrand   //   User Experience & Design


Vor einer Weile stieß ich in einem Google Pocket Artikel auf die WebApp AutoDraw. Es erlangte meine Aufmerksamkeit dadurch, dass aus jeder Zeichnung, welche man rudimentär mit der Maus malte, das Programm ein passendes Icon generierte. Also aus den eigenen Scribbles direkt ein passendes Icon abfällt. Soweit genial, oder? Da musste ich mir direkt das …


Beitrag lesen
28
APR
22

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

imx.Conference 2026: Hype oder Impact?

Autor*in: Lena Grothe


infomax   //   Technologie   //   Tourismus   //   Über den Tellerrand


Vier Jahre – so lange ist die letzte imx.Conference als inspirative Fachveranstaltung für Touristiker*innen im deutschsprachigen Raum bereits her. Unter dem Motto „Digital Tourism 2027+ | Vom Hype zum Impact.“ luden wir unser Kunden wieder zu einem Tag voller Inspiration, Austausch und konkreter Impulse für die Zukunft digitaler Anwendungen in Tourismus, Mobilität und Medien ein. …


Beitrag lesen
06
JUL
26