小编Jon*_*and的帖子

嘲笑重载 - 抽象类

我对 TDD 相当陌生,目前正在 Laravel 项目中编写测试,并且正在使用 Mockery 库。我在尝试模拟重载新类实例时遇到了问题。

问题似乎是模拟类失去了继承性,因此在传递给方法时没有通过参数验证。然而,当我创建 Child 的模拟而不重载其继承时,似乎会被拾取。

我必须上名为“家长和孩子”的课程。孩子扩展了父母。

// Test
public function test() {
    Mockery::mock('overload:Child');
    $results = service();
}

// Functions
public function service() {
    $child = new Child();
    serviceMethod($child);
}

public function serviceMethod(Parent $o) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

这会返回 serviceMethod 需要 Parent,而不是 Child。

我显然在这里遗漏了一些关键细节,有人能为我指出吗?

php unit-testing laravel mockery

5
推荐指数
1
解决办法
1623
查看次数

标签 统计

laravel ×1

mockery ×1

php ×1

unit-testing ×1