Функции модульного тестирования с побочными эффектами?

] Пусть говорят, что вы пишете функцию, чтобы проверить, была ли страница достигнута по соответствующему 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 (), не помешало бы перенаправление?

Это часть более крупной проблемы, когда некоторые функции кажутся слишком большими и покидают сферу модульного тестирования и попадают в мир интеграционного тестирования. Мой разум сразу же думает о маршрутизаторах и контроллерах, как имеющих такие проблемы, поскольку их тестирование обязательно приводит к генерации страниц, а не ограничивается только их собственной функцией.

Я просто провалюсь при модульном тестировании?

6
задан AgentConundrum 28 August 2010 в 03:20
поделиться