【发布时间】:2013-12-25 03:42:20
【问题描述】:
假设我有一个类,其中包含一个使用类型提示的函数,如下所示:
class Testable
{
function foo (Dependency $dependency)
{
}
}
我想用这个代码对这个类Testable进行单元测试:
$dependencyMock = $this->getMockBuilder('Dependency')
->disableOriginalConstructor()
->getMock();
$testable = new Testable($dependencyMock);
如果我使用 PHPUnit 创建 $dependency 的存根,然后尝试使用此模拟调用函数 foo(如上所示),我将收到一个致命错误:
传递给函数 foo() 的参数 1 必须是 Dependency 的实例,给定的 Mock_Foo 实例
如何使用 PHPUnit 对这个函数进行单元测试并且仍然存根 $dependency?
【问题讨论】:
-
在您创建模拟的位置显示您的测试代码。
-
你确定
Dependency是一个存在的类吗?它不应该有一个命名空间吗? -
在使用模拟时尝试使用完整的命名空间,如 \some\name\space\Dependency,它应该可以修复
-
谢谢!使用命名空间可以修复错误。
-
@Shakil 您应该将您的评论移至答案,以便它可以被接受。
标签: unit-testing symfony mocking phpunit type-hinting