2013-10-07 3 views
1

Я пытаюсь проверить мой updateAction, который позволяет обновлять мои пользователи в базе данных, но я не знаю, как я могу проверить его ... Я успешно протестировал мой createAction, который добавляет пользователя в мою базу данных. Поэтому я хотел бы получить идентификатор пользователя, который я только что создал, чтобы обдумать это.Как проверить действие обновления?

Это моя функция testCreate:

public function testCreate() 
    { 
     $crawler = $this->client->request('GET', '/admin/user/new'); 

     $buttonCrawlerNode = $crawler->selectButton('submit'); 

     $form = $buttonCrawlerNode->form(array(
      'myapp_usertype[email]'   => '[email protected]', 
      'myapp_usertype[role]'    => 'ROLE_USER', 
      'myapp_usertype[password][first]' => 'test', 
      'myapp_usertype[password][second]' => 'test', 
     )); 

     $this->client->submit($form); 
    } 
+0

Вы можете использовать издевается сначала проверить функциональность работы с твердыми закодированными результатами. Это проверяет ваш код, а не фактическое взаимодействие с базой данных. Следующий шаг может состоять в том, чтобы получить список ваших пользователей перед созданием (запрос и выбрать их все), создать его, а затем получить новый список. Новое количество записей в списке должно быть 1 больше, чем раньше, и должен присутствовать новый идентификатор с указанным вами адресом электронной почты, ролью и паролем. –

ответ

1

Не настолько сухой, но вы можете попробовать:

public function testUpdate() 
{ 
    $user = static::$kernel->getContainer()->get('doctrine')->getRepository('YourUserBundle:User')->findOneByEmail('[email protected]'); 

    $crawler = $client->request('GET', '/admin/user/edit/'.$user->getId()); 
    $form = $crawler->selectButton('submit')->form(); 

    $form = $buttonCrawlerNode->form(array(
     'myapp_usertype[email]'   => '[email protected]', 
     'myapp_usertype[role]'    => 'ROLE_ANOTHER', 
     'myapp_usertype[password][first]' => 'test', 
     'myapp_usertype[password][second]' => 'test', 
     )); 

     $crawler = $client->submit($form); 

    $user = static::$kernel->getContainer()->get('doctrine')->getRepository('YourUserBundle:User')->find($user->getId()); 

    $this->assertEquals(
     '[email protected]', 
     $user->getEmail() 
    ); 

    $this->assertEquals(
     'ROLE_ANOTHER', 
     $user->getRole() 
    ); 
} 
Смежные вопросы