1. Как проверить, что пришла ссылка:
https://www.php.net/manual/ru/filter.examples.vali...
<?php
$email_a = 'joe@example.com';
$email_b = 'bogus';
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo "E-mail адрес '$email_a' указан верно.\n";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "E-mail адрес '$email_b' указан верно.\n";
} else {
echo "E-mail адрес '$email_b' указан неверно.\n";
}
?>
2. Как проверить, что ссылка указывает на валидный документ — это вне обязанностей юнит-тестов. Они тестят только код на уровне метода. Вам нужно либо написать unit-тест на тот кусок кода, который эту ссылку и генерит, либо функциональный тест, который будет тестировать код как черный ящик:
- отправить запрос в ваш метод
- получить ссылку
- перейти в документ по этой ссылке
- проверить, что документ тот, что ожидается
Тут можно посмотреть в сторону behat/selenium. Также в фреймворках для этих целей часто есть свои пакеты типа SymfonyWebTest.