Я пытаюсь написать тест для метода в классе ниже. Однако, когда я запускаю тест, я получаю сообщение об ошибке, что get_b64
никогда не запускается? Я не понимаю, как это не работает.
Я немного просмотрел документацию по насмешкам для тестирования статических методов, но, насколько я могу судить, эта ошибка не из-за этого?
Что мне нужно изменить в моей стратегии тестирования или иметь возможность имитировать вызов функции в имитируемом объекте?
Класс:
namespace App\Services\Steam;
use App\Services\Steam\Utils;
class Steam
{
public function profile(string $steamID)
{
$b64 = Utils::get_b64($steamID);
if ($b64 === null) {
throw new \App\Exceptions\InvalidSteamId();
}
return new Profile($b64);
}
}
Прецедент:
public function test_create_user_object()
{
$id = "123"
$utilsMock = Mockery::mock(\App\Services\Steam\Utils::class);
$utilsMock->shouldReceive('get_b64')
->once()
->with($id)
->andReturn($id);
$steam = new \App\Services\Steam\Steam();
$steam->profile($id);
}