Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

Symfony Unit Testing: Session aus dem RequestStack testen

#Tutorials#Symfony

Für einen Unit einer Klasse brauchte ich die Session aus dem Requeststack, da diese Klasse als Constructor nur den Requeststack übergeben bekommt. Das Ganze lässt sich relativ leicht bewerkstelligen, indem man erst einen Request erstellt, diesen dann einem Requeststack zuweist und diesem Requeststack dann noch eine gemockte Session zuweist. 

Hier mal ein Beispiel:

<?php
namespace App\Test\Service;

use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;

class MyTest extends TestCase
{

	private $requestStack;

	protected function setUp(): void
    {
		// mock session
        $session = new Session(new MockArraySessionStorage());

        // create test request
        $request = new Request([], [], [], [], [], [], [], json_encode([
            'foo' => 'bar'
        ]));
        // add mocked session
        $request->setSession($session);

        // create requeststack and push request
        $this->requestStack = new RequestStack();
        $this->requestStack->push($request);
	}

	public function testAnything()
	{
		// get session from requestStack
		$session = $this->requestStack->getSession();
	}
	
}

Kommentare

Es gibt noch keine Kommentare. Sei der Erste!

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.