Closed3
Str::uuid() の値を固定値にする
Mockry で Str::uuid()
の値を固定化できなかったので、ReflectionClass を利用して固定化する。
まずは Str::uuid()
がどういうコードなのかを理解する。
static::$uuidFactory
が truly のとき、static::$uuidFactory
を実行しているらしい。
なので、static::$uuidFactory
にクロージャを入れればよさそう。
$obj = new \ReflectionClass(\Illuminate\Support\Str::class);
$prop = $obj->getProperty('uuidFactory');
$prop->setAcessible(true);
$prop->setValue($obj, fn () => '固定値');
$prop->setValue()
で実行時に返却される値を設定すれば、Str::uuid()
の実行結果は常に同じになる。
まぁこれやる意味あるかは微妙な気がするけど…
このスクラップは2023/12/26にクローズされました