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'));
}
}
Der #imxkickoff 2026 führt unser Team für drei inspirierende Tage in winterlicher Kulisse zusammen. Zwischen…
Mit den aktuellen Produkt-Updates unserer imx.Platform, des Partner Clients und der Whitelabel Widgets setzen wir…
infomax übernimmt die Rolle des Presenting Sponsor der Chiemgauer Langlauftournee im Rahmen des Sparkassencups. Die…
Wir haben die imx.Platform durch eine Reihe von Produkt-Updates weiter optimiert, um sowohl die Datenqualität…
Phil Jope und David Kelemen, haben 2022 ihre Ausbildung zum Fachinformatiker für Anwendungsentwicklung begonnen und…
Wie bringt man POIs auf mobilen Geräten intuitiv und platzsparend zur Anzeige? Diese Frage stand…