Symfony Unit Tests mit Loginuser (), Anmeldung nicht funktioniert (Rückgabe von 302 an Anmeldeseite)Php

PHP-Programmierer chatten hier
Anonymous
 Symfony Unit Tests mit Loginuser (), Anmeldung nicht funktioniert (Rückgabe von 302 an Anmeldeseite)

Post by Anonymous »

Ich erstelle einen Test für eine Symfony 5.4 -Anwendung. < /p>
Ich habe einen Test wie diesen erstellt: < /p>

Code: Select all

public function testCreateProduct() {
$client = static::createClient();
/** @var User $mainAdmin */
$mainAdmin = static::getContainer()->get(UserRepository::class)->find(1);

//$client->catchExceptions(false);
$client->loginUser($mainAdmin);

$crawler = $client->request('GET', '/en/product/new');

$this->assertResponseIsSuccessful();
$this->assertSelectorTextContains('span.username', $mainAdmin->getUsername());

}
< /code>
Aber der Anmeldung funktioniert nicht, ich erhalte eine 302 -Umleitung auf die Anmeldeseite, und wenn ich CatchExceptions (Falsch) setze < /code> Ich erhalte eine AccessDdenEdException < /code>. Ich habe einen DD ($ this-> getUser (), $ request) 

gemacht

Code: Select all

getUser()
ist null, aber die Anforderungssitzung enthält den Benutzer:

Code: Select all

#session: Symfony\Component\HttpFoundation\Session\Session {#16616
#storage: Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage {#16631
-savePath: "C:\www\project\var\cache\test/sessions"
#id: "a9d00704e1a0211d06ebddadfaabbf0188e9d65d94faac05afbdc63bb9fb7caa"
#name: "MOCKSESSID"
#started: true
#closed: false
#data: array:3 [
"_sf2_attributes" => &1 array:1 [
"_security_main" => "O:52:"Symfony\Bundle\FrameworkBundle\Test\TestBrowserToken":2:{i:0;s:4:"main";i:1;a:5:{i:0;C:15:"App\Entity\User":118:{a:5:{i:0;i:2;i:1;s:5:"admin";i:2;s:60:"$2y$13$abcdefghi......";i:3;i:1;i:4;b:0;}}i:1;b:1;i:2;N;i:3;a:0:{}i:4;a:9:{i:0;s:9:"ROLE_USER";i:1;s:10:"ROLE_ADMIN";i:2;[...]}}}"
]
"_sf2_meta" => &2 array:3 [
"u" => 1645718565
"c" => 1645718565
"l" => 0
]
"_symfony_flashes" => &3 []
]
< /code>

Ich sehe einen Unterschied zwischen
$request->getSession()->getBag('attributes')
in Dev (funktionieren) vs in test: In Dev I habe ich _security_secured_area , während ich im Test _security_main habe. Darf dies der Grund sein?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post