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


Postel’s law

Autor*in:


Technologie


Es gibt vermutlich nur wenige Sätze in der IT, die die tägliche Arbeit mit imx.MetaSearch und deren Code besser charakterisieren als dieser: Be conservative in what you do, be liberal in what you accept from others (Postel’s law).


Beitrag lesen
14
MAI
13

Besuch der c’t WebDev 2020

Autor*in: Florian Sauer


Technologie


Logo c't WebDev 2020

Vom 4.-6. Februar 2020 haben Matthias und ich in Köln die zweite c’t WebDev, eine Frontend Konferenz, besucht. Diese war in zwei Teile aufgegliedert. Am ersten Tag wurden optionale Workshops angeboten. Die folgenden zwei Tage über fand die eigentliche Konferenz mit den Vorträgen statt.


Beitrag lesen
13
FEB
20

Webfonts und der Layout Shift

Autor*in: Axel Güldner


infomax // Technologie // User Experience & Design


„Webfonts sind super“ – erläutert der Webdesigner mittleren Alters. „Bevor wir Webfonts hatten, waren wir mal sowas von eingeschränkt – Arial, Verdana, Georgia – Bums aus die Maus, sehr viel mehr hatten wir nicht.“ führt er weiter aus und klingt dabei wie ein Großvater der vom Krieg erzählt.„Webfonts sind furchtbar“ – erfährt man hingegen vom …


Beitrag lesen
27
OKT
21

Styling von Checkboxen und Radiobuttons

Autor*in: Benjamin Hofmann


Technologie   //   User Experience & Design


Wieder einmal ein Linktipp: Customizing web forms with CSS3 and WebKit Leider funktionieren diese Styles, so wie sie im Artikel dargestellt werden, nur in WebKit-basierten Browsern, also im Safari, Chrome oder den Standard-Browsern von Android und iOS. Aber wenn diese Styles nicht angewandt werden können springt der jeweilige Browser auf die normale Darstellung zurück, wie …


Beitrag lesen
23
FEB
12