小编Dan*_*nie的帖子

使用PHPUnit测试受保护方法的最佳实践(在抽象类上)

使用PHPUnit和PHP> = 5.3,可以测试受保护的方法.stackoverflow的以下页面概述了它的最佳实践:

"使用PHPUnit测试受保护方法的最佳实践"

protected static function callProtectedMethod($name, $classname, $params) {
  $class = new ReflectionClass($classname);
  $method = $class->getMethod($name);
  $method->setAccessible(true);
  $obj = new $classname($params);
  return $method->invokeArgs($obj, $params);
}
Run Code Online (Sandbox Code Playgroud)

使用PHPUnit可以轻松地在抽象类上测试公共方法.使用上述方法可以轻松地测试正常类上的受保护方法.要测试抽象类上的受保护方法必须以某种方式...

我知道PHPUnit派生抽象类并在具体类中"实现"抽象方法并针对该具体类触发测试 - 但我不知道如何将其集成到上面的方法中以获得callProtectedMethodOnAbstractClasses().

你是怎么做这样的测试的?

PS:问题不在于测试受保护方法的真相(参见:白色,灰色和黑盒测试).测试受保护方法的需要取决于您的测试策略.

php methods phpunit protected abstract

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

abstract ×1

methods ×1

php ×1

phpunit ×1

protected ×1