Я тестирую функцию загрузки фотографий аватара в приложении 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("zoom", -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("zoom", 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("rotate", -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("rotate", 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()
);
}
Прошу прощения: я не писал приложение, за тестирование которого отвечаю только (по сути, черный ящик). В производстве не было TDD, поэтому я нахожусь в таком затруднительном положении!
найдите включенный js и вставьте. откройте панель веб-разработчика в браузере и проверьте сетевые запросы






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