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


Bilder SEO – Bisher eigentlich komplett vernachlässigt

Autor*in: Axel Güldner


Technologie // User Experience & Design


Heute möchte ich ein Thema anschneiden, welches bisher wohl so niemand auf dem Schirm hatte (ich zumindest habe bisher keinen Gedanken daran verschwendet). Aber als ich dann in einem anderen Blog darüber gelesen habe, hat mich dann sofort die Faust der Erkenntnis getroffen, ähnlich einer Brockhaus-Enzyklopädie, die einem ins Gesicht fällt. Wir bemühen uns immer …


Beitrag lesen
07
FEB
12

Langzeittest Serverpilot.io

Autor*in: Sascha Nützel


Technologie


Nachdem ich privat immer noch einige Server verwalte, wollte ich euch kurz meine seit 1,5 Jahren eingesetzte Verwaltung serverpilot.io kurz vorstellen. Zur Vorgeschichte vor ca. 2 Jahren bemerkte ich mit jedem Update von iMSCP (auch eine Verwaltung um einfach MySQL, FTP Konten, usw. einzurichten), dass immer mehr Ressourcen für diese Aufgabe „verschwendet“ wurden, die Cronjobs …


Beitrag lesen
14
NOV
16

WJAX 2017: Web-APIs, einfach oder?

Autor*in: Regina Staller


Technologie


Wie im letzten Blog von mir erwähnt wurde, habe ich auf der diesjährigen WJAX einen Vortrag über den effektiven sowie effizienten client- und serverseitigen Umgang mit Web-APIs besucht. Gehalten wurde dieser Vortrag von Thilo Frotscher. Die wesentlichen Themen aus dieser Session möchte ich hier gerne noch einmal vorstellen. Besonders im Bereich IBE/Metasuche bin ich schon …


Beitrag lesen
20
NOV
17

imx.Platform Lab: Nah dran

Autor*in: Christine Pfleger


Strategie & Konzeption   //   Technologie


imx.Platform Lab

Unser Anwender*innenforum imx.Platform Lab am 24. Januar in Grassau und am 26. Januar in Hamburg versprach Blicke hinter die Kulissen und in die Glaskugel: Wir teilten mit den Gästen die aktuellsten Entwicklungen der imx.Platform und holten aus erster Hand Feedback für die Weiterentwicklung der imx.Platform ab. Unser Ziel: Ganz nah an unseren Kundinnen und Kunden sein und eine Lösung für ihre täglichen Herausforderungen im touristischen Datenmanagement liefern.


Beitrag lesen
31
JAN
23