Я пытаюсь написать тест, и один из моих методов использует глобальную функцию web()
, которая принимает (строковый) url и создает и возвращает новый экземпляр UrlHelper
, Это дает моему приложению некоторые ярлыки для некоторых вспомогательных методов. (Да, было бы лучше, но это в приложении larvel ...)Как издеваться над глобальными функциями и классами, используемыми другим классом
Метод, который я пытаюсь проверить, использует этот глобальный помощник для получения содержимого данного URL-адреса и сравнивает его с другой строкой.
Использование phpunit, как я могу перехватить вызов web
или создание UrlHelper
, чтобы я мог гарантировать, что он возвращает данный ответ? код выглядит как следующий
function web($url){
return new \another\namespace\UrlUtility($url);
}
...
namespace some/namespace;
class checker {
function compare($url, $content){
$content = web($url)->content();
...logic...
return $status;
}
}
Тест блок тестирует логику сравнения, поэтому я хочу, чтобы получить ожидаемое содержание от web
вызова. Я надеялся, что макеты/заглушки сделают трюк - но я не уверен, могу ли я ударить по этой глобальной функции или другому классу, который не прошел?
Благодаря
Посмотрите на эту http://stackoverflow.com/a/6154470, возможно, потребуется использовать расширение PHP – OnIIcE