2017-12-28 79 views
0

아약스로 동적으로 변경되는 필드가있는 페이지를 생성하는 컨트롤러를 테스트하고 싶습니다. 여기 클라이언트 또는 크롤러를 사용하여 phpunit/symfony에서 AJAX 호출 테스트하기

아약스의 코드입니다 :

<script> 
    var $groupeCompetence = $('#requete_prestataire_groupeCompetence'); 
// When sport gets selected ... 
$groupeCompetence.change(function() { 
    // ... retrieve the corresponding form. 
    var $form = $(this).closest('form'); 
    // Simulate form data, but only include the selected sport value. 
    var data = {}; 
    data[$groupeCompetence.attr('name')] = $groupeCompetence.val(); 
    // Submit data via AJAX to the form's action path. 
    $.ajax({ 
    url : $form.attr('action'), 
    type: $form.attr('method'), 
    data : data, 
    success: function(html) { 
     // Replace current position field ... 
     $('#requete_prestataire_competence').replaceWith(
     // ... with the returned one from the AJAX response. 
     $(html).find('#requete_prestataire_competence') 
     ); 
     // Position field now displays the appropriate positions. 
    } 
    }); 
}); 
</script> 
내가 클라이언트 또는 크롤러를 사용하여 phpunit을에서이 코드를 호출 할 수있는 방법

?

$this->client->request(
       'POST', 
       '/', 
       array('requete_prestataire[groupeCompetence]' =>2), 
       array(), 
       array(), 
       array('HTTP_X-Requested-With' => 'XMLHttpRequest', 
        )); 

을하지만 그것은 작동하지 않습니다

나는 시도했다.

고맙습니다.

doc symfony dom crawler component

+0

: 여기

$crawler = $this->client->request('GET', '/'); $form = $crawler->selectButton('requete_prestataire_Rechercher')->form(); $form['requete_prestataire[groupeCompetence]'] = 2; $form['requete_prestataire[competence]']->disableValidation()->select(50); $crawler = $this->client->submit($form); 

이 문서의 설명입니다 그것이 생성 된대로 검증을 해제하고 양식을 보내야합니다

: –

답변

0

나는 해결책을 발견 당신은 요청을하려고했는데, 그것은 무엇을 반환 했습니까? `var_dump ($ this-> client-> getResponse() -> getContent()) '를 호출하고 행운이 질문에 대한 응답을 삽입하지 않으면 응답을 조사하십시오.