나는 $ 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');
오류 : 형식 오류 :의 반환 값 Mockery_2_App_Models_User :: posts()는 Illuminate \ Datab의 인스턴스 여야합니다. ase \ Eloquent \ Relations \ HasMany, Mockery_4__demeter_posts의 인스턴스는 반환 유형 힌트가없는 경우
을 반환합니다. 수정하고 반송해야합니까()? idk how
은 그 오류가 일치하지 않는 것을 귀하의 코드에 무엇이든 포함시켜야합니다. – Devon