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


ReCSS – Reload your CSS

Autor*in: Benjamin Hofmann


Technologie


Jeder kennt das Problem. Man ändert einen kleinen Style, bspw. ob der Text fett ist oder nicht und dann lädt man die Seite neu, um zu schauen wie es aussieht. Und dann wartet man. Lokal manchmal sogar ziemlich lang und das für die kleinste Anpassung. Es gibt jedoch ein kleines Bookmarklet, um die Style-Entwicklung zu …


Beitrag lesen
22
AUG
12

Lunch & Learn: XR und die virtuelle Welt!

Autor*in: Verena Schmuck


infomax   //   Technologie   //   Über den Tellerrand


Was ist AR,MR,VR und XR? Und wie ist es selber in der virtuellen Welt zu sein? Dafür haben wir eine Woche lang zwei VR-Brillen ausgeliehen.


Beitrag lesen
19
APR
24

„Könnte was für mich sein!“ Das war die infomax Coding Challenge.

Autor*innen: Christine Pfleger, Alexander Riemer


infomax   //   Technologie   //   Über den Tellerrand


infomax Coding Challenge
infomax Coding Challenge

Wie können wir Schülerinnen und Schüler für die Informatik begeistern – und ihnen spannende berufliche Perspektiven direkt vor der Haustür im Chiemgau zeigen? Diese Frage haben wir uns gestellt – und gråd extra auf unsere eigene Art und Weise beantwortet: mit der ersten infomax Coding Challenge, die vergangene Woche am 17. April 2024 stattfand.


Beitrag lesen
24
APR
24

WJAX 2018 – Angular, Java 11 und ein wenig ML

Autor*in: Magdalena Piller


Technologie


Im November war ich mal wieder auf der WJAX und habe mir den „Angular-Day“ herausgesucht, also ein kompletter Tag rund um Angular. Aber auch ein paar andere Themen versprachen Interessantes. In der Keynote mit dem Titel „Trust and Confidence through Chaos“ präsentierte Russ Miles seine Variante des Chaos Engineerings ganz nach dem Motto „Umarme Deinen …


Beitrag lesen
28
DEZ
18