私は模擬しようとしています(例だけです)$ user-> posts() - > get()。phpUnit - 関係を使ってlaravelモデルを模倣する
例サービス:
use App\Models\User;
class SomeClass{
public function getActivePost(User $user): Collection
{
return $user->posts()->get();
}
}
と私のモデル: とモデル:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use \App\Models\Post;
class User extends Model
{
public function posts() : HasMany
{
return $this->hasMany(Post::class);
}
}
が、これは動作しません。
$this->user = Mockery::mock(User::class);
$this->user
->shouldReceive('wallets->get')
->andReturn('test output');
エラー: はTypeError:の戻り値Mockery_2_App_Models_User :: posts()はIlluminate \ Databのインスタンスでなければなりませんase \ Eloquent \ Relations \ HasMany、Mockery_4__demeter_postsのインスタンスが返されました
戻りタイプのヒントなし(on post()メソッドなし)はすべて問題ありません。 andReturn()を変更する必要がありますか? idk how
エラーが対応していないようだということあなたのコード内に何かがある。 – Devon