getPdoMock(); $stmt = $this->getPdoStatem-6ren">
gpt4 book ai didi

php - 在phpunit中, "with"方法内部是否有类似于onconsecutivecalls的方法?

转载 作者:IT王子 更新时间:2023-10-28 23:57:31 25 4
gpt4 key购买 nike

使用 PHPUnit,我正在模拟 pdo,但我试图找到一种方法来准备多个数据库查询语句。

$pdo = $this->getPdoMock();
$stmt = $this->getPdoStatementMock($pdo);

$pdo->expects($this->any())
->method('prepare')
->with($this->equalTo($title_query))
->will($this->returnValue($stmt));

$title_stmt = $pdo->prepare($title_query);
$desc_stmt = $pdo->prepare($desc_query);

我想为“with”方法传递类似于 onConsecutiveCalls 的内容,这样我就可以准备多个语句,如上所示。你会怎么做?

最佳答案

您可以通过使用 $this->at() 而不是 $this->any() 编写单独的期望来匹配同一方法的连续调用:

$pdo->expects($this->at(0))
->method('prepare')
->with($this->equalTo($title_query))
->will($this->returnValue($stmt));

$pdo->expects($this->at(1))
->method('prepare')
->with($this->equalTo($desc_query))
->will($this->returnValue($stmt));

$title_stmt = $pdo->prepare($title_query);
$desc_stmt = $pdo->prepare($desc_query);

关于php - 在phpunit中, "with"方法内部是否有类似于onconsecutivecalls的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5328105/

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