ВАРИАНТ 1
Можете ли вы изменить функцию для работы следующим образом:
function someFunc($existingArgs, $db = null)
{
$db = (is_null($db)) = new DB_PG();
$result = $db->select($query)
$return $result;
}
Таким образом, вы можете передать экземпляр db, это позволит вам по крайней мере протестировать эту функцию, в будущем вы можете реорганизовать такие вещи, чтобы работа someFunc была на моделях, а загрузка db происходила через dao / repository / factory .
ВАРИАНТ 2
Если DB_PG еще не извлечен с помощью require / include в файле, в котором находится эта функция, вы можете определить фиктивный класс внутри вашего тестового класса
class DB_PG
{
public function select($query)
{
//use phpunit's libs to output a mock object, you'll need to use the PHPUnit_Framework_Mock::generate() static method, I think that's the name.
return $mockResult;
}
}
Таким образом, вы можете контролировать то, что происходит с результатом.