1
我正試圖在下面的類中編寫一個方法的測試。但是,當我運行測試時,我得到的錯誤get_b64
永遠不會運行?我不明白這是不是運行。Mockery無法在測試方法中調用我的方法
我已經看了一些關於測試靜態方法的嘲諷文檔,但據我所知,這個錯誤不是由於這個原因造成的?
我需要改變我的測試策略,或者能夠模擬模擬對象中的函數調用?
類:
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);
}