Я тестирую конечную точку в своем приложении Laravel. Однако у меня есть промежуточное программное обеспечение, которое выполняет сложную логику для определения местоположения пользователя (используя обратный поиск ip и т. Д., Например, этот код:
public function getOpCityByIP()
{
// Get the client's remote ip address
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']) {
$clientIpAddress = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0];
} else {
$clientIpAddress = $_SERVER['REMOTE_ADDR'];
}
$opCityArray = OpCityIP::get($clientIpAddress);
return $opCityArray;
}
Я не заинтересован в том, чтобы вникать в внутренности таких методов в указанном промежуточном программном обеспечении и издеваться над ними и т. д. Я бы предпочел просто пропустить все промежуточное программное обеспечение во время модульного тестирования или, по крайней мере, издеваться над всеми его операциями и вместо этого жестко кодировать результат для нечто предопределенное. Как я могу это сделать?
Я использую Ларавель 5.4
Обновить
мне нужно, чтобы он игнорировал определенное промежуточное ПО, а не все из них
disableMiddleware()
- person xiarnousx   schedule 07.08.2019