php - 使用 app()->make 创建的模拟类

标签 php unit-testing laravel phpunit

我的 __construct 中有这段代码:

public function __construct(Guard $auth)
{
    $this->auth = $auth;
    $this->dbUserService = app()->make('DBUserService');
}

现在,当我进行单元测试时,我知道我可以模拟 Guard 并将其模拟传递给 $auth,但我如何模拟 dbUserService ?它通过 IoC 容器实例化。

最佳答案

您可以使用 IoC 容器的 instance() 方法来模拟任何使用 make() 实例化的类:

$mock = Mockery::mock(); // doesn't really matter from where you get the mock
// ...
$this->app->instance('DBUserService', $mock);

关于php - 使用 app()->make 创建的模拟类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349301/

相关文章:

php - 在数组的相同索引上使用 json 数据推送 id

php - 如何创建 <内容 :encoded> in RSS

PHP - 使用 foreach 删除重复项?

c# - 如何在 .NET 中循环并测试已实例化对象的属性值

php - Javascript 时间戳在 Laravel 中被 Carbon 解析为错误的日期

php - 无法使用 Carbon formatLocalized 方法返回本地化的 AM/PM 时间格式?

php - 调整图像大小而不实际更改文件夹中的图像

java - JUnit5 Gradle 插件覆盖默认构建任务

java - 如何模拟从另一个方法调用的方法

mysql - Laravel 基于条件的 sql 查询