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


# Teaminterview | Was passiert eigentlich in der Portalentwicklung?

Autor*in: Christine Pfleger


infomax   //   Technologie   //   Über den Tellerrand


Stefan Oswald und Simon Schindlatz, Portalentwickler bei infomax

Was macht eigentlich ein*e Portalentwickler*in bei infomax? Welche Fähigkeiten sind im Job hilfreich, welche Tools nutzt das Team, und wie sieht die technische Entwicklungsumgebung aus? Wir haben mit Benni, Simon und Stefan über ihre Aufgaben im Portalentwicklungs-Team bei infomax gesprochen.


Beitrag lesen
23
MRZ
23

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

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

imx.ContentDelivery API meets Lechradweg

Autor*in: Christine Pfleger


Projekte   //   Technologie


Wer sich im Alltag nicht täglich mit Datenbanken und Schnittstellen beschäftigt, tut sich zugegebenermaßen schwer zu verstehen, warum unsere Entwickler bei der imx.ContentDelivery API ins Schwärmen kommen. Wir haben daher den Senior Entwickler Benjamin Hofmann und den Technischen Geschäftsführer Christian Heindl gebeten, am Beispiel des aktuellen Lechradweg-Projekts so praxisbezogen wie möglich die Vorteile der imx.ContentDelivery API aufzuzeigen.


Beitrag lesen
18
OKT
22