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


Google Maps und der Wikipedia-Layer

Autor*in: Benjamin Hofmann


Technologie


Seit dem Release von Google Maps v3 gab es keinen Wikipedia-Layer mehr, den man einfach so einblenden konnte. Laut diesem Issue bei Google wird das auch nicht mehr passieren, da der Layer zu wenig genutzt wird und der Aufwand für die Integration in keiner Relation zum Nutzen steht. Jedoch wurde dort eine API von einem …


Beitrag lesen
17
JUL
12

OpenX Fehlermeldung: File permissions

Autor*in: Stefan Oswald


Technologie


Manchmal beim Setup oder einer Migration des OpenX AdServers kann es zu dem lästigen Problem kommen, dass nach jedem Login eine Fehlermeldung kommt, die auf falsch Dateirechte hinweist. Entgegen der Fehlermeldung wurde jedoch kein Eintrag in die debug.log Datei geschrieben. Um den Fehler angezeigt zu bekommen, muss wiefolgt vorgegangen werden: Öffne Datei im OpenX Basis-Verzeichnis: …


Beitrag lesen
04
DEZ
13

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