PHPUnit テストでモック オブジェクト (Mockery) を使用したいと考えています。モック オブジェクトには、いくつかのパブリック メソッドといくつかのパブリック プロパティ セットの両方が必要です。クラスは Laravel Eloquent モデルです。私はこれを試しました:
$mock = Mockery::mock('User');
$mock->shouldReceive('hasRole')->once()->andReturn(true); //works fine
$mock->roles = 2; //how to do this? currently returns an error
$this->assertTrue(someTest($mock));
...しかし、パブリック プロパティを設定すると、次のエラーが返されます。
BadMethodCallException: メソッド Mockery_0_User::setAttribute() がこのモック オブジェクトに存在しません
このエラーは、単純なクラスをモックするときには返されませんが、Eloquent モデルをモックしようとすると返されます。私は何を間違っていますか?