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


imx.Platform News: Der Toureneditor ist da!

Autor*in: Selina Hammerschmid


infomax   //   Technologie


In den vergangenen Wochen hat sich bei uns alles um das Thema Touren gedreht. Sie können jetzt bestehende Touren hochladen, bearbeiten und neue Touren zeichnen.


Beitrag lesen
09
AUG
23

Bug in Netbeans 8.0.1 und Lösung

Autor*in: Bastian Schwarz


Technologie


Wie einige mitbekommen haben hatte ich nach dem Update auf Netbeans 8.0.1 kein Autcomplete mehr und auch alle anderen Sachen wie Open Class, Navigation etc. gingen nicht mehr. Heute habe ich endlich eine Lösung gefunden: https://netbeans.org/bugzilla/show_bug.cgi?id=247026 Readers Digest: Offenbar gab es Änderungen wie der Index geschrieben wird, dieser sollte das erkennen und sich neu aufbauen. …


Beitrag lesen
23
SEP
14

Datenimporte in die imx.Platform

Autor*in: Tobias Pfannkuche


Technologie


Aufgrund der kontinuierlich steigenden Anzahl externer Datenlieferanten bzw. der Anbindung von Schnittstellen im Rahmen von Datenimporten und damit verbundenen wiederkehrenden Fragen, hier eine Zusammenfassung der Kern-Anforderungen, um Daten von Drittanbietern in die imx.Platform zu übernehmen, sowie Grundfunktionalitäten für Datenimporte. Anforderungen Grundsätzlich sind folgende technischen Anforderungen einer Schnittstelle, die wir zwecks Datenübernahme/-import nutzen wollen, zu erfüllen: …


Beitrag lesen
10
NOV
17

imx.Platform News: MCP-Endpunkt, Aufgaben-Modul und neue KI-Funktionen

Autor*innen: Lena Grothe, Lorena Meyer


infomax   //   Technologie


Inhalte aus der imx.Platform werden für KI-Systeme noch besser zugänglich und redaktionelle Arbeit wird effizienter mit gleichzeitiger Erhöhung der Datenqualität: Das neue Quartal bringt eine Reihe substanzieller Erweiterungen für die gesamte imx.Platform Produktfamilie. Mit dem neuen MCP-Endpunkt der imx.Platform Content Delivery API geht die imx.Platform einen weiteren Schritt in puncto LLM-Integrationsfähigkeit der Contents. Dank des …


Beitrag lesen
21
APR
26