Вот функция, которая использует Zend DB/Tablegateway:PHPUnit - насмешка функция обратного вызова
public function listAttestations($sSidx = null, $sSord = null, $iOffset = 0, $iLimit = 0)
{
try {
$resultSet = $this->tableGateway->select(
function (Select $select) use ($sSidx, $sSord, $iOffset, $iLimit) {
if ($sSidx != null && $sSord != null) {
$select->order($sSidx.' '.$sSord);
}
$select->join(
'f_travclient',
'syndic_client_id = f_travclient.travClient_id',
array('syndic' => 'nom')
);
$select->offset($iOffset);
$select->limit($iLimit);
}
);
return $resultSet;
} catch (\Exception $e) {
throw new \Exception($e);
}
}
Я использую PHPUnit сделать модульные тесты. Возможно, я не знаю, как сделать функцию, которая пересекает мой предыдущий метод. Я думал, что это может быть функциональным:
public function testListAttestations()
{
$resultSet = new ResultSet();
$mockTableGateway = $this->getMock('Zend\Db\TableGateway\TableGateway', array('select'), array(), '', false);
$mockTableGateway->expects($this->once())
->method('select')
->with()
->will($this->returnValue($resultSet));
$attestTable = new FMaiAttestationTable($mockTableGateway, $this->adapter, $this->sql);
$this->assertSame($resultSet, $attestTable->listAttestations('maiAttestation_id', 'ASC', 0, 30));
}
Но это не идет дальше:
function (Select $select) use ($sSidx, $sSord, $iOffset, $iLimit) {
Может кто-нибудь мне помочь? Благодарю.
Спасибо! Теперь он переходит в мой метод :) – Amelie