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')); } }
Wie können wir Schülerinnen und Schüler für die Informatik begeistern – und ihnen spannende berufliche…
Was ist AR,MR,VR und XR? Und wie ist es selber in der virtuellen Welt zu…
Vergangene Woche fand unser jährliches Netzwerk-Event der imx.Daten-und Serviceplattform statt. So viel sei vorab gesagt…
imx.Platform-Kunden nutzen bereits seit einigen Jahren Services aus dem Bereich der Künstlichen Intelligenz (KI), wenn…
Wie geht man am besten an einen Blogbeitrag über den Jahresauftakt #imxkickoff2024 des infomax-Teams vergangene…
Phil, Stefan und Vroni berichten vom Tag der Ausbildung in Traunstein, der größten Bildungsmesse in…