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