gpt4 book ai didi

php - Zend Framework 2 phpunit 测试带有连接的表

转载 作者:可可西里 更新时间:2023-11-01 13:30:42 26 4
gpt4 key购买 nike

我使用了 Zend Framework 2 文档中的 Album 示例并创建了一个应用程序。

现在,在使用 phpunit 对其进行单元测试时,我在测试一个具有 join 的表时遇到了问题,比如表 Account_Type

这是它的代码。

fetchAll 函数是

function fetachAll()
{
$sql = new Sql($this->tableGateway->getAdapter());

$select = $sql->select();

$select->from('Album')
->columns(array('id', 'name', 'account_type_id', 'managing_account_id'))
->join(array('AT' => 'account_type'), 'album.account_type_id = AT.account_type_id');

$resultSet = $this->tableGateway->selectWith($select);

return $resultSet;
}

上表的单元测试代码是。

public function testFetchAllReturnsAllAlbums()
{
$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));

$albumTable = new AlbumTable($mockTableGateway);

$this->assertSame($resultSet, $albumTable->fetchAll());
}

我遇到这个错误

Argument 1 passed to Zend\Db\Sql\Sql::__construct() must be an instance of
Zend\Db\Adapter\Adapter, null given,

对于此行 $this->assertSame($resultSet, $albumTable->fetchAll());testFetchAllReturnsAllAlbums 方法中。

如果有人对 join 做过 phpunit 测试,请提供相同的示例。

最佳答案

您可能想要模拟 Zend\Db\TableGateway\TableGateway 对象的 getAdapter 方法。调用此方法并将其返回值传递给 Zend\Db\Sql\Sql 构造函数。

关于php - Zend Framework 2 phpunit 测试带有连接的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com