我有这个功能测试(我只是显示一个片段):
namespace Just\An\ExampleBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ExampleControllerTest extends WebTestCase
{
public function testCrearTipus()
{
$client = static::createClient(array(), array(
'PHP_AUTH_USER' => 'login',
'PHP_AUTH_PW' => 'pa$$sword'
));
$client->followRedirects();
$url = '/admin/type/new';
$crawler = $client->request('GET', $url);
$token = $crawler->filter('input[name="name_of_form[_token]"]')->first()->getValue();
.....
}
}
我无法获得视图中定义的输入值:
任何帮助将不胜感激
答案 0 :(得分:8)
如果您想使用名称选择器,
$appClient = static::createClient();
$requestCrawler = $appClient->request('GET', $url;
$tokenExtract = $requestCrawler->filter('input[name="name_of_form[_token]"]')
->extract(array('value'));
$csrfToken = $tokenExtract[0];
答案 1 :(得分:6)
如果您的表单中有按钮,则可以尝试使用此按钮。
$crawler = $client->request('GET', $url);
$buttonCrawlerNode = $crawler->selectButton('Save');
$form = $buttonCrawlerNode->form();
$token = $form->get('name_of_form[_token]')->getValue()
其中,保存是按钮中的文字