Допустим, вы пишете функцию, чтобы проверить, была ли страница достигнута по соответствующему URL.У этой страницы есть «каноническая» заглушка - например, хотя страницу можно найти по адресу stackoverflow.com/questions/123, мы бы предпочли (по причинам SEO) перенаправить ее на stackoverflow.com/questions/123/how-do-i-move-the-turtle-in-logo - и фактическое перенаправление безопасно содержится в его собственном методе (например, redirectPage ($ url)), но как правильно протестировать функцию, которая вызывает его?
Например, возьмите следующую функцию:
function checkStub($questionId, $baseUrl, $stub) {
canonicalStub = model->getStub($questionId);
if ($stub != $canonicalStub) {
redirectPage($baseUrl . $canonicalStub);
}
}
Если бы вы проводили модульное тестирование функции checkStub (), не помешало бы перенаправление?
Это частьболее масштабной проблемы, когда определенные функции кажутся слишком большими и покидают сферу модульного тестирования и попадают в мир интеграционного тестирования.Мой разум сразу же вспоминает о маршрутизаторах и контроллерах, как имеющих такие проблемы, поскольку их тестирование обязательно приводит к генерации страниц, а не ограничивается только их собственной функцией.
Я просто провалюсь при модульном тестировании?