gpt4 book ai didi

unit-testing - 如何对使用类型提示的函数进行单元测试

转载 作者:行者123 更新时间:2023-12-03 07:56:19 28 4
gpt4 key购买 nike

假设我有一个包含使用类型提示的函数的类,如下所示:

class Testable 
{
function foo (Dependency $dependency)
{

}
}

我想对这个类进行单元测试 Testable使用此代码:
$dependencyMock = $this->getMockBuilder('Dependency')
->disableOriginalConstructor()
->getMock();


$testable = new Testable($dependencyMock);

如果我使用 PHPUnit 创建 $dependency 的 stub ,然后尝试调用函数 foo使用这个模拟(像上面一样),我会得到一个致命的错误,说:

Argument 1 passed to function foo() must be an instance of Dependency, instance of Mock_Foo given



如何使用 PHPUnit 对这个函数进行单元测试并仍然 stub $dependency ?

最佳答案

使用模拟时使用完整命名空间,它将解决模拟继承问题。

$dependencyMock = $this->getMockBuilder('\Some\Name\Space\Dependency')
->disableOriginalConstructor()
->getMock();
$testable = new Testable($dependencyMock);

关于unit-testing - 如何对使用类型提示的函数进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446771/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com