我試圖在Symfony中進行一些功能測試,我目前正面臨着會話問題。我執行了一段代碼,這似乎正在工作,但沒有任何內容存儲在我的容器的會話中。Symfony2功能測試會話持久性
我有一個表單設置數據。提交時,它會檢查值並將其存儲在會話中。然後它重定向到需要存儲這些值的另一個頁面。
我測試的目的是檢查會話。
<?php
namespace Acme\TestBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\HttpFoundation\Session\Storage\MockFileSessionStorage;
use Symfony\Component\HttpFoundation\Session\Session;
class FrontControllerTest extends WebTestCase
{
public function testForm()
{
$client = static::createClient();
$session = $client->getContainer()->get('session');
$crawler = $client->request('GET', '/setParameters');
$form = $crawler->selectButton('Submit')->form();
$form['myForm[firstname]']->setValue('Ben');
$form['myForm[lastname]']->setValue('H');
$client->submit($form);
//I tested and my controller is fully going through the submit handler
//which check the values and save it into the session
//Things are 100% sure there. Then it redirects to another page which check those values.
$values = $client->getContainer()->get('session')->get('parameters'); //NULL
$this->assertEquals($values['firstname'], 'Ben'); //false
$this->assertEquals($values['lastname'], 'H'); //false
}
}
其實它根本不工作,好像我不能在會話中存儲任何內容並檢索它。
有人可以幫我嗎?謝謝。
在檢查會話之前,我建議你用'$ this-> assertEquals(302,$ client-> getResponse() - > getStatusCode(),「正確的響應代碼」)來檢查操作的成功與否;' – Matteo 2014-09-23 12:41:13