PHP-Funktionen in PHPUnit testen

Benjamin Hofmann Datum: 13. Januar 2017
Autor: 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


Twitter Account-ID auslesen – 2013

Autor: Stefan Oswald


Technologie


Vor ca. 2 Jahren habe ich dazu schon mal einen Artikel geschrieben, aber die dort verlinkte Seite funktioniert nicht mehr. Es gibt aber eine neue Seite: http://mytwitterid.com/ Soweit ich weiß, versteckt Twitter die User-ID inzwischen komplett; man kann sie nur noch per API auslesen. Durch die Benutzung des verlinkten Tools muss man das nicht selbst …


Beitrag lesen
25
SEP
13

OOP 2014 – Martin Fowler: „Not just code monkeys“

Autor: Marc Kurzmann


Technologie // Über den Tellerrand


Ein Thema, welches mir persönlich sehr am Herzen liegt: jeder sollte sich seiner sozialen/ethischen Verantwortung bewusst sein. Dazu passt der Vortrag von Martin Fowler auf der OOP 2014. „Einer der Keynote-Speaker war Martin Fowler. Er hielt einen eindrucksvollen Vortrag, in dem er auch auf die soziale Verantwortung von Software-Entwicklern einging. Seine Botschaft „Not just code …


Beitrag lesen
10
FEB
14

Open Graph Meta Tags & facebook for developers

Autor: Steven Schöning


Technologie


Ich hatte vor kurzem das Problem, dass trotz dem hinterlegten Bild im og:image Tag ein anderes Bild ausgespielt wurde, denn es wurde das erste Bild im HTML Quelltext beim teilen über Facebook ausgegeben. Hier konnte ich bei „facebook for developers“ einige Informationen zu dem Thema finden, indem ich im Sharing Debugger und im Object Debugger …


Beitrag lesen
15
JUN
17

Responsive Webdesign – Was hat das mit mir zu tun?

Autor: Axel Güldner


Projekte // Technologie // Über den Tellerrand // User Experience & Design


Das Thema Responsive Webdesign hat inzwischen jeden von uns, der mit offenen Augen durch das Internet läuft, mindestens einmal berührt. Quasi wie aus dem Nichts ist diese Disziplin über Nacht zum neuen Buzzword unter Webdesignern/Entwicklern und Marketingleuten geworden. Responsive Webdesign gilt einfach als sexy, auch wenn die eigentliche Idee dahinter nicht gerade neu ist. Jeder …


Beitrag lesen
18
JAN
12