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


WJAX 2018 – Angular, Java 11 und ein wenig ML

Autor*in: Magdalena Piller


Technologie


Im November war ich mal wieder auf der WJAX und habe mir den „Angular-Day“ herausgesucht, also ein kompletter Tag rund um Angular. Aber auch ein paar andere Themen versprachen Interessantes. In der Keynote mit dem Titel „Trust and Confidence through Chaos“ präsentierte Russ Miles seine Variante des Chaos Engineerings ganz nach dem Motto „Umarme Deinen …


Beitrag lesen
28
DEZ
18

Flash stirbt, aber wie geht es weiter?

Autor*in: Axel Güldner


Technologie // User Experience & Design


Wir sind uns sicher weitestgehend einig, dass Flash am Sterben ist. Apple hat mit seiner Entscheidung, Adobes Plugin auf mobilen Geräten nicht zu unterstützen, eine Entwicklung ausgelöst, an derren Ende das Flashplugin komplett verschwinden wird. Und wir sind uns auch sicher hier wieder größtenteils einig, wenn ich behaupte, Flash werden nur wenige vermissen. Aber wie …


Beitrag lesen
23
FEB
12

Java-Orbit 2024

Autor*in: Tobias Pfannkuche


Technologie   //   Über den Tellerrand


Foto von Nicolas Gras auf Unsplash

Der Hype der vergangenen Jahre rund um AI lässt spürbar nach, die immer noch verhältnismässig junge Technologie hat den Einzug in den Alltag gerade auch in der Software-Entwicklung gefunden und steht nun vor der Herausforderung, sich zu bewähren. So wie davor zahlreiche andere technologische Entwicklungen und Veränderungen.


Beitrag lesen
18
NOV
24