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


Animierte Gifs im IE

Autor*in: Bastian Schwarz


Technologie


Gerade hat mich der IE mal wieder erstaunt (im negativen Sinne). Bei der IBE-Suche der AWK wird zur Überbrückung der Ladezeit eine Ladeanimation eingeblendet. Diese Animation wird mit einem animierten Gif dargestellt. Allerdings hat das Gif im Internet Explorer die Animation nicht ausgeführt. Nach ein wenig Recherche bin ich auf einen Bug im IE gestoßen …


Beitrag lesen
04
MAI
12

imx.Platform News: Datenqualität, automatische Regionszuordnung und Referenzlisten für Touren & Veranstaltungen

Autor*in: Ina Fuchshuber


infomax   //   Technologie


imx.Platform
imx.Platform - das Datenmanagement-System von infomax

Was rührt sich in der imx.Platform-Entwicklung? Wir wollen Ihnen zukünftig wieder regelmäßig Einblick geben in neue Features und Optimierungen Ihrer imx.Platform – hier auf unserem Blog, sowie per Email. Ankündigung imx.Platform 3: Werden Sie Beta-User der überarbeiteten Medienverwaltung! Danke für Ihr Feedback über die letzten Wochen! Wir überarbeiten derzeit die Medienverwaltung und erste Kunden nutzen …


Beitrag lesen
17
AUG
22

Photoshop-Ebenenstile als CSS3-Code exportieren

Autor*in: Michael Degener


Technologie   //   User Experience & Design


Ob Designer oder Entwickler, jeder der schon einmal eine Screen-Vorlage mit all seinen Ebenen mittels HTML und CSS zum Leben erwecken musste, hat sich insgeheim sicherlich schon einmal gewünscht, dass sich dabei manche Arbeitsschritte beschleunigen ließen. Wer kennt sie nicht, die allgegenwärtigen Buttons in Formularen, Teasern und Schnellsuchen. Von runden Ecken über Konturen und Schlagschatten …


Beitrag lesen
03
AUG
12