Symfony4 InvalidArgumentException: текущий список узлов пуст - PullRequest
0 голосов
/ 12 марта 2020

Я получаю эту ошибку при запуске функциональных тестов через PHPUnit. Ошибка в строке 50. Этот код позволяет пользователю комментировать сообщение. Вот тест, который я написал:

public function testShowPost(){
        $client = static :: createClient ();
        $client -> request ( 'GET' , '/site/{id}' );
        $this -> assertEquals ( 404 , $client -> getResponse () -> getStatusCode ());
        //teste le contenu attendu de la page /site/{id}
        $crawler = $client -> request ( 'GET' , '/site/{id}' );
        //vérifie l'existence des éléments HTML de la page ainsi que les attributs, texte...
        $crawler->filter('html h2.title');
        $crawler->filter('html div.createdAt');
        $crawler->filter('html div.image');
        $crawler->filter('html h1.comment');
        $crawler->filter('html div.category.title');
        $crawler->filter('html h4.comment.author');

        $form = $crawler -> selectButton ( 'Commenter !' ) -> form ();
        // set some values
        $form ['._token'] = 'Lucas' ;
        $form [ 'content' ] = 'Hey there!' ;

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

Это код html. Вот вид, который я написал:

{% block body %}
<project>
    <h2>{{ project.title }}</h2>
    <div class="metadata">Posté le {{ project.createdAt | date('d/m/Y')}}
        à {{project.createdAt | date('H:i')}} dans la catégorie {{ project.category.title }}. Nous avons besoin de {{project.price}}</div>

        <div class="progress">
            <div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="{{project.price}}/100"  aria-valuemin="0" aria-valuemax="100" style="width: 75%"></div>
        </div>

    <div class="content">
        <img src="{{ asset('/uploads/images/')~project.image }}" height="300px" width="350px" alt="">
        {{ project.content | raw }}
    </div>

</project>

<section id="commentaires">
    <div class="container">
        <div class="card">
            <div class="card-header">
                <h1> {{ project.comments | length }} commentaires : </h1>
            </div>
            <div class="card-body">
                {% for comment in project.comments %}
                    <div class="comment">
                        <div class="row">
                            <div class="col-3">
                                <h4 class="m-0">{{ comment.author }}</h4> <span class="badge badge-info">(<small>{{comment.createdAt | date('d/m/Y à H:i')}}</small>)</span>
                            </div>
                            <div class="col-9">
                                {{ comment.content | raw }}
                            </div>
                        </div>
                    </div>
                    <hr>
                {% endfor %}

                {% if app.user %}
                    {{ form_start(commentForm)}}

                    {# {{ form_row(commentForm.author, {'label' : 'Username'})}}
                     {{ app.user.username }} #}
                    {{form_row(commentForm._token)}}
                    {{ form_row(commentForm.content, {'label' : 'Votre commentaire'})}}
                    <button type="submit" class="btn btn-success">Commenter ! </button>
                    {{ form_end(commentForm, {'render_rest':false})}}

                    <br><a href= "{{ path('site_contribute', {'id': project.id}) }}" class="btn btn-danger">Contribuer</a>

                {% else %}
                    <h2> Vous ne pouvez pas commenter si vous n'êtes pas connecté </h2>
                    <a href="{{path('security_login')}}" class="btn btn-primary"> Connexion </a>
                {% endif %}

            </div>
        </div>
    </div>
</section>

Я хочу проверить свой код, тестирование формы и тестирование пути. Я не знаю, как это исправить. Можете ли вы помочь мне, пожалуйста?

...