dongnaota6386 2018-08-07 15:29
浏览 56
已采纳

使用phpunit 6.5.1 symfony 3.4按钮问题进行功能测试

I am trying to test my small web app with phpunit but Im having difficulty submitting forms and accessing the buttons with the crawler. I can't seem to login as the node always reports as empty. I believe the issue may be with the submit button, possibly trying to reference it.

private $client = null;

 public function setUp()
 {
    $this->client = static::createClient();
    $this->testlogIn();
 }

   public function testLogIn()
{
    $crawler = $this->client->request('GET', '/login');
    $form = $crawler->filter('button#logIn')
      ->form(
            [
              '_username' => 'AdminAccountKyleTest',
              '_password' => 'test'
            ],
            'POST'
        );

    $this->client->submit($form);

    $this->assertContains('Homepage', $crawler->filter('body > div.main > div > div > div:nth-child(2) > h1')->text());
}    

This is the twig template for the button:

  <button class="btn btn-lg btn-primary btn-block" id="logIn" 
type="submit">Sign in</button>

Does phpunit have an issue when the button is rendered in the twig instead of a SubmitType on a form ?

  • 写回答

1条回答 默认 最新

  • duai8153 2018-08-07 22:09
    关注

    Test you form using the following snippet:

        //selectButton accepts the button id|name|text
        $form = $crawler->selectButton("logIn")->form();
    
        $form['_username'] = 'AdminAccountKyleTest';
        $form['_password'] = 'test';
    
        $client->submit($form);
    
        //follow the form request redirect after login_check
        $client->followRedirect();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?