跳转到主要内容
在 Laravel 中可以像下面这样编写测试代码。

Copilot::fake()

Copilot::fake() 是针对通过 Copilot Facade 使用的功能的 mock。其他功能不做 mock。
Copilot::start 中多次调用时。

断言

确认特定 prompt 被调用过。
确认某个 prompt 没有被调用。
确认 prompt 被调用的次数。
确认 prompt 一次都没有被调用。

Prevent stray requests

禁止所有 JSON-RPC 请求。一旦调用就会抛出异常 Revolution\Copilot\Exceptions\StrayRequestException
只允许一部分命令的情况。
停止防止。
因为只防止 JSON-RPC 请求,所以不会阻止 Client::start()

可能不能正常工作的用法

如果在 Artisan 命令内部使用 Copilot,fake() 的 mock 有效,但之后的 assertPrompt() 等可能无法正常工作。由于使用示例较少,正在调查中。

shouldReceive() / expects()

Mockery 中常见的 shouldReceive()expects() 当然也可以使用。 只要使用 Facade 就会自动支持这些功能,因此这里省略说明。
最新信息请参考 GitHub 仓库
最后修改于 2026年7月18日