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'));
}
}
Dieses Jahr wurde es wieder einmal Zeit, eine Smashing Conference zu besuchen, diesmal in der…
"Wir sind dann nächste Woche auf der SmashingCon. Sollen wir jemandem was aus Amsterdam mitbringen,…
Gelebtes Anwenderforum Das imx.Platform Lab ist mehr als ein weiterer Termin in Ihrem Kalender. Es…
Inhalte aus der imx.Platform werden für KI-Systeme noch besser zugänglich und redaktionelle Arbeit wird effizienter…
Summit in Hannover, Zeit für Perspektivwechsel. Neue Perspektiven erweitern den Horizont, ermöglichen persönliches Wachstum und…
Der #imxkickoff 2026 führt unser Team für drei inspirierende Tage in winterlicher Kulisse zusammen. Zwischen…