PHPUnit 预言一个没有确切参数的方法

PHPUnit prophesize a method without exact arguments

我正在使用 prophecy 模拟 UserRepository class 以确保当向 /user 发送 POST 请求时,create() 方法在 UserRepository 上被解雇。

$repository = $this->prophesize(UserRepository::class);

$repository->create()->shouldBeCalled()

唯一的问题是 create() 方法将请求数据作为参数发送到存储库,以便在执行任何操作之前对输入进行一些严重的调整。我如何在不告诉预言参数是什么的情况下模拟 create() 调用?

或者这对我来说真的是不好的做法,请求数据永远不应该传递到存储库吗?

use Prophecy\Argument;

$repository->create(Argument::any())->shouldBeCalled()
use Prophecy\Argument;

$repository->create(Argument::cetera())->shouldBeCalled()

any() 匹配任何 single 值,其中 cetera 匹配 all 值到签名的其余部分。