Тестирование загрузки файла без формы в phpunit / Symfony 3.4

Я тестирую функцию загрузки фотографий аватара в приложении Symfony 3.4. В документации Symfony предполагается, что это будет через форму. Однако на данной странице не используется ввод формы, поэтому мне сложно понять, как написать тест.

Вот HTML:

    <div class = "col-md-4 docs-buttons">
        <label class = "btn btn-info btn-block btn-upload" for = "inputImage" title = "Upload image file" style = "margin-bottom:15px;">
            <input class = "sr-only" id = "inputImage" name = "file" type = "file" accept = "image/*">
            <span class = "docs-tooltip" data-toggle = "tooltip" title = "Import image with Blob URLs">
                <span class = "fa fa-plus"></span> Upload New Photo
            </span>
        </label>

        <div class = "btn-group" style = "margin-right:10px;">
            <button class = "btn btn-info" data-method = "zoom" data-option = "-0.1" type = "button" title = "Zoom Out">
                <span class = "docs-tooltip" data-toggle = "tooltip" title = "$().cropper(&quot;zoom&quot;, -0.1)">
                    <span class = "fa fa-search-minus"></span>
                </span>
            </button>
            <button class = "btn btn-info" data-method = "zoom" data-option = "0.1" type = "button" title = "Zoom In">
                <span class = "docs-tooltip" data-toggle = "tooltip" title = "$().cropper(&quot;zoom&quot;, 0.1)">
                    <span class = "fa fa-search-plus"></span>
                </span>
            </button>
        </div>

        <div class = "btn-group">
            <button class = "btn btn-info" data-method = "rotate" data-option = "-22.5" type = "button" title = "Rotate Left">
                <span class = "docs-tooltip" data-toggle = "tooltip" title = "$().cropper(&quot;rotate&quot;, -22.5)">
                    <span class = "fa fa-rotate-left"></span>
                </span>
            </button>
            <button class = "btn btn-info" data-method = "rotate" data-option = "22.5" type = "button" title = "Rotate Right">
                <span class = "docs-tooltip" data-toggle = "tooltip" title = "$().cropper(&quot;rotate&quot;, 22.5)">
                    <span class = "fa fa-rotate-right"></span>
                </span>
            </button>
        </div>
    </div>
    <input type = "hidden" id = "userId" value = "6001777">
</div>

<div class = "modal-footer">
<div class = "row">
    <div class = "col-xs-6 text-left">
        <a class = "btn btn-default" data-dismiss = "modal">Cancel</a>
    </div>
    <div class = "col-xs-6">
        <button id = "save" class = "btn btn-info">Save</button>
    </div>
</div>

Это тест phpunit, написанный для аналогичного случая, но где ввод - это форма. Есть ли способ реорганизовать это, чтобы протестировать страницу выше?

  public function testUpload()
 {
  # Open the page
  ...

 # Select the file from the filesystem
 $image = new UploadedFile(
    # Path to the file to send
    dirname(__FILE__).'/../uploads/photo.jpg',
    # Name of the sent file
    'photo.jpg',
    # MIME type
    'image/jpeg',
    # Size of the file
    11832
 );

 # Select the form (adapt it for your needs)
 $form = $crawler->filter('input[type=submit]...')->form();

 # Put the file in the upload field
 $form['... name of your field ....']->upload($image);

  # Send it
 $crawler = $this->client->submit($form);

 # Check that the file has been successfully sent
 #  (in my case the filename is displayed in a <a> link so I check
 #  that it appears on the page)
 $this->assertEquals(
     1,
     $crawler->filter('a:contains("filename.jpg")')->count()
 );
}

нет PHP, нет javascript, только разметка HTML. А в HTML даже нет тега формы с действием. НИКТО тебе помочь.

delboy1978uk 04.06.2018 16:26

Прошу прощения: я не писал приложение, за тестирование которого отвечаю только (по сути, черный ящик). В производстве не было TDD, поэтому я нахожусь в таком затруднительном положении!

h1mupstairs 04.06.2018 16:37

найдите включенный js и вставьте. откройте панель веб-разработчика в браузере и проверьте сетевые запросы

delboy1978uk 04.06.2018 16:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
689
0

Другие вопросы по теме