Добрый день!
Отдельный класс мока создавать не нужно. Ларавел из коробки идет с пакетом Mockery и оберткой над ним. Поэтому вы можете мокать объект частично (обычно сами вызовы api), при этом остальные методы продолжать работать без изменений.
Внутри теста:
$client = factory(Client::class)->create();
$mock = Mockery::mock(Client::class);
$this->app->instance($class, $mock);
$mock->shouldReceive('createFromApi')
->withAnyArgs()
->andReturn($client);
В данном примере мокается метод createFromApi класса Client (который, предположим создает экземпляр по данным вызова API). Теперь, указав andReturn($client), мы точно знаем, что вернется экземпляр класса Client. Все остальные методы не изменяются.
$this->app->instance устанавливает "подправленный" инстанс при резолве из DI. Таким образом, вы мокаете конкретные методы API, которые вызываются в рамках вашего теста.