Я делаю функциональные тесты контроллеров Symfony2, наследуя мои тестовые классы от этого:маркер пользователя в Symfony2 Функциональные тесты
class InsecureWebTestCase extends WebTestCase {
protected $client = null;
public function setUp() {
$this->client = static::createClient();
$session = $this->client->getContainer()->get('session');
$firewall = 'default';
$token = new UsernamePasswordToken('[email protected]', null, $firewall, array('ROLE_USER', 'ROLE_ADMIN'));
// $this->client->getContainer()->get('security.context')->setToken($token);
$session->set("_security_$firewall", serialize($token));
$session->save();
$cookie = new Cookie($session->getName(), $session->getId());
$this->client->getCookieJar()->set($cookie);
}
}
Если я использую контроллер в качестве части приложения: $this->container->get('security.token_storage')->getToken()->getUser()
и $this->getUser()
случаи моего субъекта «доктрина».
Но при запуске функциональных тестов: $this->container->get('security.token_storage')->getToken()->getUser()
- это строка, содержащая имя пользователя и $this->getUser()
: NULL
.
Что мне нужно сделать, чтобы поведение было согласованным в моем приложении и функциональных тестах?
попробовать этот способ при выполнении запроса по: запрос '$ client-> (» GET ','/post/12 ', array(), array(), array ( ' PHP_AUTH_USER '=>' username ', ' PHP_AUTH_PW '=>' pa $$ word ', )); ' – smarber