如何在没有外部通信的情况下保持 PHPUnit 测试内部?

How to keep PHPUnit tests internal, without external communication?

是否可以确保没有测试与外部源通信?虽然我认为我的所有测试都负责模拟任何外部依赖项,但我想知道是否有任何类型的包罗万象以确保我的测试套件不会与第三方 API 等发生任何意外通信。

由于这被标记为 Laravel,我假设您更喜欢基于 Laravel 的答案。

假设您没有测试与外部 API 的通信(这在某些时候是值得的),您将希望以与处理其他任何事物相同的方式来处理它。

嘲笑。

您的模型和 API 库都在与数据源通信。为了测试你的模型,你模拟它们,这样你就不会与数据库交互。您需要对 API 执行相同的操作,模拟 returns 结果的 class,或者完全跳过它并给出示例响应。

这完全取决于您要测试的内容。如果您不想测试如何处理来自 API 的数据,只需不要调用与 API.

交互的任何内容