0

可能重复:
PhpUnit 私有方法测试

在我的单元测试中,我需要调用一个私有方法来将我的装置设置为给定状态。另一方面,我宁愿不公开这种方法。我该怎么做?

4

2 回答 2

4

为什么不保护这些函数并创建一个派生类来进行测试呢?该类可以具有用于测试的公共函数,可以初始化各种变量等。

于 2012-12-01T14:42:36.173 回答
1

单元测试私有方法通常是一个坏主意,但如果你真的想要,反射是要走的路。这应该这样做:

$reflection_class = new ReflectionClass($object_under_test);
$method = $reflection_class->getMethod('nameOfMethod');
$method->setAccessible(true);
$method->invoke($object_under_test, $param);

高温高压

于 2012-12-01T14:47:17.903 回答