estoy en symfony 5.4
No entendí lo que Symfony realmente necesita para corregir esta desaprobación:
Desde symfony/security-csrf 5.3: Usar "Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage" sin una sesión no tiene efecto y está obsoleto. Lanzará un "Symfony\Component\HttpFoundation\Exception\SessionNotFoundException" en Symfony 6.0 1x en MeansCablesControllerTest::TestDatagridAdd from App\Tests\Controller
Mi función en tests/Controller/MeansBenchesControllerTest.php (WebTestCase):
function datagridAddUpdate($controllerName, $dataArray) { $client = static::createClient(); $usersRepository = static::getContainer()->get(UsersRepository::class); $testUserAdmin = $usersRepository->find(1); $client->loginUser($testUserAdmin); $csrfToken = $client->getContainer()->get('security.csrf.token_manager')->getToken($controllerName.'Token_item'); $dataArray['_token'] = $csrfToken; $crawler = $client->request('POST', '/datagridAddUpdate/'.$controllerName,$dataArray, [], ['HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest']); $this->assertResponseIsSuccessful('Status code 2xx pour datagridAdd : '.$controllerName); }Ejecutar esto antes de crear el formulario asegurará que haya una sesión disponible para él:
$request = new Request(); $request->setSession(new Session(new MockArraySessionStorage())); self::getContainer()->get(RequestStack::class)->push($request);