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'));
}
}
Smarter arbeiten, schneller finden, besser pflegen: Das neue Update der imx.Platform Produktfamilie bringt eine ganze…
Brixen, belebt, Beton, besonders, Brennerbasistunnel, beeindruckend, Begegnungen, begeisternd. Oh wie schön war das DestinationCamp 2026…
Vier Jahre - so lange ist die letzte imx.Conference als inspirative Fachveranstaltung für Touristiker*innen im…
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…