1
私は以下のクラスのメソッドのテストを作成しようとしています。しかし、テストを実行すると、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);
}
}
のTestCase:
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);
}