给定一个看起来像这样的雄辩的回购。
class PinRepo {
protected $pinModel;
public function __construct( Model $pinModel )
{
$this->pinModel = $pinModel;
}
public function addPinToProject( $page_id, $inputs )
{
$pin = new $this->pinModel();
$pin->fill($inputs);
$pin->save();
return $pin;
}
}
我的第一次尝试是:
class PinRepoTest extends TestCase {
public function setUp()
{
parent::setUp();
$this->modelMock = Mockery::mock( 'Pin' );
$this->pinRepo = PinRepo( $this->modelMock );
}
public function testAddPinToPage()
{
$this->modelMock
->shouldReceive('fill')->with(["project_page_id"=>1])
->once()
->andReturn(Mockery::self())
->shouldReceive('save')
->once();
$this->pinRepo->addPinToProject( 2, ["project_page_id"=>1]);
}
}
但我得到了这个错误(哪种有意义)
“此模拟对象上不存在方法 ::fill()”
鉴于此设置,有什么方法可以让该测试通过?