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

Dev- Ops Camp Nürnberg

Autor*in: Sascha Nützel


Technologie


Nachdem ich ohnehin einen Teil meiner Wochenenden in Nürnberg verbringe, war ein Besuch des Dev- Ops Camp Nürnberg naheliegend. Das Camp war als „Unkonferenz“ organisiert, sodass Ablauf und Themen direkt vor Ort festgelegt wurden. Leider hatte ich an diesem Tag mehr als einmal die Qual der Wahl, da jeweils 4 Sessions gleichzeitig stattfanden. Da eigens …


Beitrag lesen
14
NOV
16

Recap Velocity Conference Amsterdam 2016

Autor*in: Robert Klauser


Technologie // Über den Tellerrand


Nach drei spannenden Tagen von 7. bis 9. November 2016 in Amsterdam bin ich mit vielen neuen und interessanten Eindrücken von der Konferenz zurückgekehrt, die ich gerne mit Euch teilen möchte. Bei der Velocity Conference ging es um die Themen Web Performance in allen Facetten sowie DevOps als Prozess für den agilen und performanten Betrieb …


Beitrag lesen
11
NOV
16

Servus, Magazin gråd extra Nr. 6!

Autor*in: Christine Pfleger


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


Die gerade erschienene sechste Ausgabe unseres Magazins gråd extra befasst sich mit dem Schwerpunkt Verbindungen | Mensch-Maschine. Wir spüren diesen Verbindungen nach und liefern Impulse für deren Inwertsetzung. Ein Blick ins Magazin.


Beitrag lesen
27
JUL
22